javascript - 将函数传递给子组件反应原生
问题描述
我尝试将 onChangeText() 传递给反应原生的子组件,它的工作原理:
onChangText(value){
console.log(value)
}
render() {
return (
<View style={{flex:1}}>
<Ui
onChangeText={this.onChangText()}
/>
</View>
)
}
但是当我调用其他函数(在父函数中)时,如下所示:
loger(value){
console.log(value)
}
onChangText(value){
this.loger(value)
}
render() {
return (
<View style={{flex:1}}>
<Ui
onChangeText={this.onChangText()}
/>
</View>
)
}
我收到错误:this.loger 不是函数
解决方案
你需要注意的两件事
首先,在将函数传递给孩子时,您无需调用它,只需传递引用即可
<Ui
onChangeText={this.onChangText}
/>
其次,当您需要this
在被调用函数中使用关键字时,您应该将函数绑定到正确的上下文。在您的情况下,您需要将其绑定到父类的上下文,因此您可以为此目的使用箭头函数
onChangText = (value) => {
this.loger(value)
}
推荐阅读
- java - KStream 转 KTable
- corda - Corda 中的节点如何在 Enterprise Corda 版本中恢复数据
- python - tensorflow 的 tf.round() 值错误,因为它是一个没有梯度的操作
- android - Flutter 项目运行时显示错误无效参数:源不得为空
- vb.net - 从 vb.net 运行时列名无效
- linux - 什么是 .pivot_root 文件?
- visual-studio-code - 如何构建和运行 VSCode 扩展拾色器?
- c# - 如何使用 fluent api 设置手机号码和邮政编码的最大长度?
- c# - 如何对依赖基类的方法进行单元测试?
- linux - 如何更改 Kubernetes 的版本