我在React Native应用程序中有一个非常基本的TextInput + Button组合,用于编写和发送消息,如下所示:
<TextInput
type="text"
ref={input => {
this.inputRef = input;
}}
style={styles.userInput}
name="userInput"
autoCorrect={false}
placeholder="Type something..."
autoFocus={false}
autoComplete="off"
onChangeText={this.watchInput}
returnKeyType="done"
/>
<Button
disabled={!this.state.isValidInput}
style={styles.sendButton}
title="Send"
textStyle={{fontSize: 12}}
onPress={this.handleSubmit}
accessibilityLabel="Press this button to send your message"
/>
按下按钮时,我使用handleSubmit函数来处理消息发送和输入字段的重置,如下所示:
handleSubmit = async () => {
const message = this.state.input; // get input from state
Keyboard.dismiss() // hide keyboard
this.inputRef.clear(); // clear TextInput
this.setState({ input: '' }); // reset input state
this.setState({ isValidInput: false }); // reset input state
this.stretchInputField()
var r = await this.props.myAwesomeSendMessageFunction() // send message
}
当使用实际的Button进行发送时,此方法很好用,但是如果我要使用iOS键盘中的听写功能,则当我说完该按钮时,它确实会发送消息,但不会清除输入字段,所以我m在该处理程序已经发送的字段中与输入相同。
有什么想法为什么它能与听写一起使用,以及如何在发送时清除输入字段?
反应本机版本0.57.8
答案 0 :(得分:0)
您是否将值绑定到文本输入中?
尝试在文本输入中绑定值= {this.state.input}之类的输入