diff --git a/src/connectToStores.js b/src/connectToStores.js
index 2a04c37..7c011e2 100644
--- a/src/connectToStores.js
+++ b/src/connectToStores.js
@@ -91,6 +91,10 @@ function connectToStores(Spec, Component = Spec) {
this.storeListeners.forEach(unlisten => unlisten())
},
+ getRef() {
+ return this.refs.component
+ },
+
onChange() {
this.setState(Spec.getPropsFromStores(this.props, this.context))
storeDidChange(this.state)
@@ -99,7 +103,7 @@ function connectToStores(Spec, Component = Spec) {
render() {
return React.createElement(
Component,
- assign({}, this.props, this.state)
+ assign({ ref: 'component' }, this.props, this.state)
)
},
})
diff --git a/test/connect-to-stores-test.js b/test/connect-to-stores-test.js
index 73cd780..9be9d54 100644
--- a/test/connect-to-stores-test.js
+++ b/test/connect-to-stores-test.js
@@ -285,6 +285,32 @@ export default {
assert.deepEqual(storeDidChange, {foo: 'Baz'})
},
+ 'Component ref can be accessed from WrappedComponent'() {
+ class ClassComponent5 extends React.Component {
+ static getStores() {
+ return [testStore]
+ }
+ static getPropsFromStores(props) {
+ return testStore.getState()
+ }
+ isAccessible() {
+ return true
+ }
+ render() {
+ return
+ }
+ }
+
+ const WrappedComponent = connectToStores(ClassComponent5)
+
+ let node = TestUtils.renderIntoDocument(
+
+ )
+
+ const child = node.getRef()
+ assert(child.isAccessible() === true)
+ },
+
'Component receives all updates'(done) {
let componentDidConnect = false
class ClassComponent3 extends React.Component {