在Reactjs中无法访问组件方法

17 浏览
0 Comments

在Reactjs中无法访问组件方法

我正在尝试从父组件访问子方法。子代码如下所示:

class child extends Component {
someMethod(v) {
// 做某些事情
}
render(){
return(
...
)
}
}

父代码如下所示:

class Parent extends Component {
hoverOn(){
this._Child.someMethod(10);  // 这里 _Child 是未定义的
}
render(){
return(

 { this._Child = Child; }} />
)
}
}

在 hoverOn() 中,我收到一个错误,告诉我 _Child 未定义。如何从父类调用 someMethod()?

0
0 Comments

问题的出现原因:

在React中,通过refs来访问组件的方法,但是在这个问题中,尝试使用refs访问组件的方法并没有成功。

解决方法:

尝试添加refs来解决这个问题。可以通过使用回调方法来添加refs,这是官方文档推荐的做法。

代码示例:

class Parent extends Component {
hoverOn(){
    this.refs._Child.someMethod(10);
}}

根据讨论,问题的提出者已经使用了官方文档推荐的回调方法来添加refs,因此他的做法比之前的建议更好。

注意:

在讨论中某些情况下,之前没有注意到问题提出者使用了回调方法来添加refs。

0