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 8 键盘扩展中实现自动更正

如何在iOS8自定义键盘中使用自动更正和快捷列表?

是否可以删除 iOS Quicktype 键盘但保持自动更正?

当用户按下回车键时,是不是有另一种方法可以在移动 Safari(iOS 上)上触发自动更正/自动完成?

有没有办法让 iOS 的自动更正忽略 UITextView 中的单个单词或正则表达式?

彩色 UITextview 的自动更正问题