iOS 上的自动更正不会在 react-native 中触发 onChangeText
Posted
技术标签:
【中文标题】iOS 上的自动更正不会在 react-native 中触发 onChangeText【英文标题】:Autocorrect on iOS doesn't fire onChangeText in react-native 【发布时间】:2017-04-26 19:22:50 【问题描述】:react-native 版本:0.43.4 平台:ios
重现步骤:
-
在 TextInput 中键入拼写错误的单词
按空格以确保它尚未更改为正确的单词。以防它只是删除并再次使其成为拼写错误的单词。
现在 iOS 必须显示带有红色虚线下划线的单词。点击它,iOS 将显示 2 种类型的自动更正。一个位于单词的侧面,第二个位于键盘的顶部。
从键盘顶部选择自动更正。
通过检查日志等,您会知道它没有触发任何 onChangeText 事件。
关于如何使它工作的任何想法?
【问题讨论】:
那么,你的问题是什么? 【参考方案1】:对于遇到此问题的任何人,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);
/>
【讨论】:
以上是关于iOS 上的自动更正不会在 react-native 中触发 onChangeText的主要内容,如果未能解决你的问题,请参考以下文章
是否可以删除 iOS Quicktype 键盘但保持自动更正?
当用户按下回车键时,是不是有另一种方法可以在移动 Safari(iOS 上)上触发自动更正/自动完成?