本机版本: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);
}}
/>