本机版本:0.43.4
平台:iOS

重现步骤:


在TextInput中输入拼写错误的单词
按空格键以确保它尚未更改为正确的单词。如果它只是删除并再次使它拼写错误的单词。
现在,iOS必须显示带红色下划线的单词。点击该按钮,iOS将显示两种类型的自动更正。一个在单词的旁边,第二个在键盘的顶部。
从键盘顶部选择自动更正。
通过检查日志等,您将知道它没有触发任何onChangeText事件。


关于如何使其运作的任何想法?

最佳答案

对于任何陷入困境的人,GitHub问题在这里:https://github.com/facebook/react-native/issues/2552

当问题仍然存在时,我想到了一个临时解决方法。基本上,在您的onSubmitEditing回调中,先让它调用您的onChangeText回调。如果您键入了“ awrsome”,并且已自动更正为“ awesome”,则onChangeTextCallback会被称为“ awesome”。

onChangeTextCallback = (text) => { /* do stuff */ }
onSubmitEditingCallback = (e) => { /* do stuff */ }


然后在您的JSX中:

  <TextInput
    onChangeText = {onChangeTextCallback}
    onSubmitEditing = {(e) => {
      onChangeTextCallback(e.nativeEvent.text);
      onSubmitEditingCallback(e);
    }}
  />

07-24 17:18