在React Native中使用ref调用child中的函数

时间:2019-02-20 23:43:29

标签: javascript reactjs react-native

我对React Native还是很陌生,来自React和其他前端技术。我的子组件中有这个toggle方法,我想从我的父母那里调用。我尝试使用的是引用。我从React熟悉了它,但是使用以下代码却无法正常工作:

gameRef = createRef();

toggleGameMenu = () => {
    this.gameRef.toggle();
}

...

<Sheet title="How would you like to play" ref={this.gameRef} />

这将返回类似this.gameRef.toggle isn't a function的内容。我很确定该方法确实存在于我的子组件中。因此,我在react native中搜索引用,遇到this page。我以为这是有帮助的,但是我不确定是否可以从父母那里给我的孩子调用该方法?我看到了setNativeProps,但据我了解,它与属性/值有关,而不是调用方法。有人对如何解决这个问题有想法吗?

1 个答案:

答案 0 :(得分:1)

删除createRef()

代替此,

<Sheet title="How would you like to play" ref={ instance => this.gameRef = instance } />

,并确保在安装组件后使用this.gameRef.toggle()。在此之前它将引发错误。