react-native onpress conflicts with onchangetext



代码:

export default class app extends Component {
state={
name:''
}
render(){
return(
<View>
<TextInput onChangeText={this.handle}></TextInput>
<TouchableOpacity
onPress={this.handleSubmit(this.state.name)}>
<Text>go</Text>
</TouchableOpacity>
</View>
)
}
handle=(text)=>{
this.setState({name:text})
}
handleSubmit=(name)=>{
alert(name)
}
}

每次输入文本时,handleSubmit函数都会使用,为什么

<TouchableOpacity
onPress={()=>this.handleSubmit(this.state.name)}>
<Text>go</Text>
</TouchableOpacity>

如果我这样写,问题就解决了,但为什么

每当渲染周期发生时,handleSubmit函数都会自动调用组件,因此当文本发生更改时,这就是为什么该函数会自动调用的原因,因此您必须将箭头函数设置为在按钮按下事件发生时必须调用的函数。

正如您在this.handleSubmit(this.state.name).中使用的()

最新更新