我有两个React组件,Parent和Child,每个组件在其自己的文件中都是单独的模块。我正在使用Redux,所以两者都是“导出默认撰写” ...
在父级的构造函数中:
this.myChild = React.createRef();
在家长的呈现中:
<Child ref={this.myChild} />
孩子定义了方法:
getAlert() {
//do something
}
我正在尝试调用Parent的方法之一:
this.myChild.current.getAlert();
但是我得到了
this.myChild.current.getAlert() is not a function.
我确认this.myChild.current不为空。
我想念什么?
答案 0 :(得分:0)
引用用于访问DOM,而不是React组件(这是一个JS类)。根据{{3}}:
在典型的React数据流中,道具是父组件与其子组件交互的唯一方式。要修改孩子,您可以使用新道具重新渲染它。
避免将refs用于可以声明式完成的任何事情。例如,不要在Dialog组件上公开open()和close()方法,而要向其传递isOpen属性。