我正在使用“refs”从父级调用子组件中的函数(checkAndErase),但无法使其工作。任何人都可以帮助我,因为我是新人做出反应。 Thanx提前 引发错误: “无法读取未定义的属性checkAndEarse()”
以下是我的父渲染功能:
<View>
<TouchableOpacity disabled={initing} onPress={this.refs.child.checkAndErase()} style={styles.actionButton}>
<Text style={[styles.actionButtonText, initing && styles.disabled]}>
Eraser
</Text>
</TouchableOpacity>
</View>
<Board puzzle={puzzle} ref={ref => {this.child = ref}} solve={this.solve} erasing={erasing} editing={editing}
onInit={this.onInit.bind(this)} onErrorMove={this.onErrorMove} onFinish={this.onFinish}/>
答案 0 :(得分:0)
您需要使用箭头函数语法来延迟绑定到子方法:
onPress={() => this.child.checkAndErase()}
答案 1 :(得分:0)
尝试使用ref的current
对象。它包含react JS
中子组件的所有详细信息(状态,属性,方法等等)。我希望react-native
也是如此。
因此,imo应该是
onPress={() => this.child.current.checkAndErase()}
注意:您可能需要添加那些传统的空检查。即this.child.current && this.child.current.checkAndErase()
干杯!