React的文档声明组件函数可以由父组件通过refs访问.请参阅:https://facebook.github.io/react/tips/expose-component-functions.html
我试图在我的应用程序中使用它,但在调用子函数时遇到"undefined is not a function"错误.我想知道这是否与使用ES6格式的React类有关,因为我没有看到我的代码和文档之间的任何其他差异.
我有一个Dialog组件,看起来像下面的伪代码.Dialog有一个"Save"按钮,调用save(),需要调用子Content组件中的save()函数.Content组件从子表单字段中收集信息并执行保存.
class MyDialog extends React.Component {
save() {
this.refs.content.save(); <-- save() is undefined
}
render() {
return (
<Dialog action={this.save.bind(this)}>
<Content ref="content"/>
</Dialog>);
}
}
class Content extends React.Component {
save() {
// Get values from child fields
// and save the content
}
}
Run Code Online (Sandbox Code Playgroud)
我可以将prop(saveOnNextUpdate)传递给Content,然后在它为真时执行save,但我宁愿弄清楚如何让上面的React doc中详述的方法工作.
有关如何使doc方法工作或以不同方式访问子组件的任何想法?