React Native:iOS听写无法清除文本输入

时间:2019-02-28 13:53:28

标签: javascript ios react-native

我在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

1 个答案:

答案 0 :(得分:0)

您是否将值绑定到文本输入中?

尝试在文本输入中绑定值= {this.state.input}之类的输入