在下面的代码中,每按一次 键,就会触发onSubmitEditing事件。奇怪的是,如果我注释掉onChangeText事件,则onSubmitEditing有时会酌情仅在返回时才触发。
有人可以解释我该如何做,或者(a)即使在调用onChangeText时,也可以适当地触发onSubmitEditing,或者(b)检索onSubmitEditing事件中输入的文本的值。
render() {
return (
<View style={styles.container}>
<TextInput
onChangeText={text => this.setState({ text })}
onSubmitEditing={
console.log(`onSubmitEditing: ${this.state.text}`)
}
placeholder="Enter Text..."
returnKeyType="done"
returnKeyLabel="done"
/>
</View>
);
}
我正在使用
"expo": "^32.0.0",
"react": "16.5.0",
"react-native": "0.57.1",
谢谢!
更新:这似乎可行
onSubmitEditing={a => console.log(`onSubmitEditing: ${this.state.text}`) }
有人可以帮助我了解发生了什么事吗?
答案 0 :(得分:1)
仅仅是因为onSubmitEditing
是支持函数调用的道具。在进行onSubmitEditing={console.log('a')}
时,您会丢失绑定,因此在使用箭头功能实现后绑定仍起作用的原因