You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native 0.71键盘弹出时报错:Cannot add new property '_currentlyShowing'

React Native 0.71.4 点击输入框弹出键盘时报错:TypeError: Cannot add new property '_currentlyShowing'

运行React Native 0.71.4版本应用,构建过程无异常,但点击任意文本输入框弹出键盘时触发以下错误:

ERROR  TypeError: Cannot add new property '_currentlyShowing', js engine: hermes

环境信息

System:
    OS: macOS 13.2.1
    CPU: (8) arm64 Apple M1 Pro
    Memory: 764.00 MB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.14.2 - ~/.nvm/versions/node/v18.14.2/bin/node
    Yarn: 3.5.0 - /usr/local/bin/yarn
    npm: 9.5.0 - ~/.nvm/versions/node/v18.14.2/bin/npm
    Watchman: 2023.03.06.00 - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.12.0 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
    Android SDK:
      API Levels: 28, 29, 31, 32, 33, 33
      Build Tools: 30.0.2, 30.0.3, 31.0.0, 33.0.0, 33.0.2, 34.0.0
      System Images: android-30 | Google APIs ARM 64 v8a
      Android NDK: Not Found
  IDEs:
    Android Studio: 2022.1 AI-221.6008.13.2211.9619390
    Xcode: 14.2/14C18 - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.18 - /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0 
    react-native: 0.71.4 => 0.71.4 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

已尝试操作:删除node_modules、清理yarn缓存、执行gradlew clean和pod install、卸载模拟器应用,问题仍未解决。


可行的排查与解决方法

1. 排查第三方键盘相关依赖

该错误大概率与键盘管理类第三方库冲突,比如react-native-keyboard-aware-scroll-view、react-native-keyboard-manager等:

  • 临时移除项目中的这类依赖,重新构建后测试是否仍报错。
  • 若确认是某库导致,查看其版本是否适配RN 0.71.x,升级至最新兼容版本。

2. 临时禁用Hermes引擎测试

错误关联Hermes引擎,可先禁用排查兼容性问题:

  • iOS:在ios/Podfile中修改use_react_native!配置,移除:hermes_enabled => true,执行pod install后重新构建。
  • Android:在android/app/build.gradle中设置enableHermes: false,重新构建项目。
    若禁用后错误消失,说明是Hermes与某个依赖存在兼容性问题,需针对性排查依赖版本。

3. 检查全局代码对核心对象的修改

项目中若有全局Polyfill、Object原型修改或Object.freeze冻结核心对象的代码,可能导致无法添加属性:

  • 排查polyfill文件、全局初始化代码,确认是否有对Keyboard相关对象进行冻结或修改的逻辑,临时注释后测试。

4. 升级RN到0.71.x最新补丁版本

RN 0.71.4后续发布了多个补丁版本(如0.71.13),可能已修复这类键盘相关Bug:

yarn upgrade react-native@0.71.x

升级后重新执行依赖安装与构建操作。

5. 检查iOS端第三方键盘管理配置

若仅iOS平台出现问题,检查AppDelegate中是否配置了IQKeyboardManager等第三方工具,临时注释相关配置代码后测试。


内容的提问来源于stack exchange,提问作者Miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:32:04