react-native - iOS 上的自动更正不会在 react-native 中触发 onChangeText

标签 react-native react-native-ios

react 原生版本:0.43.4
平台:iOS

重现步骤:

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

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

    最佳答案

    对于遇到此问题的任何人,GitHub 问题在这里:https://github.com/facebook/react-native/issues/2552

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

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

    然后在你的 JSX 中:
      <TextInput
        onChangeText = {onChangeTextCallback}
        onSubmitEditing = {(e) => {
          onChangeTextCallback(e.nativeEvent.text);
          onSubmitEditingCallback(e);
        }}
      />
    

    关于react-native - iOS 上的自动更正不会在 react-native 中触发 onChangeText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43642848/

    相关文章:

    react-native:淡出 ScrollView 底部

    react-native - 当我在 React Native 中使用 `require` 加载图片时,它是否真的将图片加载到内存中?什么时候发布?

    react-native - 如何在 Android 手机上运行 React Native 应用程序

    javascript - 根据另一个字段的值禁用一个字段

    javascript - 在 React Native View 上强制 onLayout

    javascript - 是否可以通过 React Native 代码编辑现有的 JS 文件?

    android - Xcode 与 Android 的 React Native 模块冲突

    react-native - react native : How to deteck iPhones with Notch?

    react-native - react-native 中的应用程序状态不会删除监听器

    react-native - 捆绑失败 : TypeError: Cannot read property 'bindings' of null at Scope. moveBindingTo