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

Expo运行react-navigation代码报unconfigurable property错误如何解决

问题排查结论

你遇到的报错核心原因是路由依赖版本冲突,同时安装了两套不兼容的React Navigation版本,导致模块加载失败,进而触发后续的App注册异常。
具体对应关系:

  • 你当前写的路由代码是react-navigation 4.x版本的语法
  • package.json中同时安装了@react-navigation/native 6.x(新版React Navigation),两个版本的底层实现逻辑冲突,触发了Attempting to change the getter of an unconfigurable property报错
  • 后续的"main" has not been registered报错是衍生问题:前置模块加载失败后,App入口没有正常执行组件注册逻辑
解决步骤
  1. 卸载冲突的依赖包
    执行如下命令删除多余的新版路由依赖:
npm uninstall @react-navigation/native

如果后续计划使用React Navigation 6.x,需要同步重构所有路由代码为新版API,当前阶段保持版本一致即可。

  1. 补充Babel配置
    打开项目根目录的babel.config.js文件,添加react-native-reanimated的编译插件,避免动画库兼容问题,完整配置参考:
module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: ['react-native-reanimated/plugin']
  };
};
  1. 清空缓存重启服务
    先停止当前运行的Metro服务,执行如下命令清空缓存启动项目:
npm start -- --clear

如果执行完以上步骤仍有报错,可以删除node_modules文件夹和package-lock.json文件,重新执行npm install安装依赖后再启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:24:04