尝试在子组件中调用函数失败

时间:2019-01-06 21:56:07

标签: reactjs

我有两个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不为空。

我想念什么?

1 个答案:

答案 0 :(得分:0)

引用用于访问DOM,而不是React组件(这是一个JS类)。根据{{​​3}}:

  

在典型的React数据流中,道具是父组件与其子组件交互的唯一方式。要修改孩子,您可以使用新道具重新渲染它。

     

避免将refs用于可以声明式完成的任何事情。例如,不要在Dialog组件上公开open()和close()方法,而要向其传递isOpen属性。