响应高阶组件 - 包装组件中的包装组件的调用函数
问题描述:
假设我使用的是正确的模式,我希望能够从<Wrapper/>
以内调用someFunc()
-位于<Home/>
之内。请看下图:响应高阶组件 - 包装组件中的包装组件的调用函数
var Home = React.createClass({
someFunc() {
console.log('How can I call this from <Wrapper/>?')
},
render() {
return <h1>Hello World</h1>
}
})
var Wrapper = (Home) => {
return React.createClass({
render() {
return <Home {...this.props}/>
}
})
}
var HomeWrapped = Wrapper(Home)
ReactDOM.render(<HomeWrapped/>, document.getElementById('root'))
答
您可以使用ref
为:
var Wrapper = (Home) => {
return React.createClass({
render() {
return (
<div>
<button onClick={() => {this.home.someFunc()}} />
<Home
{...this.props}
ref={(c) => this.home = c;}
/>
</div>
);
}
})
}