代码如下
export default class app extends Component {
state={
name:''
}
render(){
return(
<View>
<TextInput onChangeText={this.handle}></TextInput>
<TouchableOpacity
onPress={this.handleSubmit(this.state.name)}>
<Text>提交</Text>
</TouchableOpacity>
</View>
)
}
handle=(text)=>{
this.setState({name:text})
}
handleSubmit=(name)=>{
alert(name)
}
}
问题:这样写的话每次输入文本都会调用handleSubmit函数,这是为什么
<TouchableOpacity
onPress={()=>this.handleSubmit(this.state.name)}>
<Text>提交</Text>
</TouchableOpacity>
这样写可以不触发,但是。。。为什么??
每次setState都会重新执行render函数,由于this.handleSubmit(this.state.name)是函数执行的形式,所以每次setState都会调用这个函数