复制React Navigation官方代码运行报错undefined is not an object (evaluating 'route.key')
报错原因及解决方案
这个undefined is not an object (evaluating 'route.key')报错在React Navigation项目中绝大多数情况由依赖版本不兼容/缺失导致,对应你的代码场景,常见触发原因和解决方法如下:
- 首先排查所有React Navigation相关依赖的版本一致性:你需要保证
@react-navigation/native、@react-navigation/native-stack、@react-navigation/bottom-tabs三个包的大版本完全匹配,比如均为6.x稳定版,版本跨度过大就会触发内部路由属性读取失败的问题。 - 检查必选核心依赖是否安装完整:React Navigation运行必须依赖
react-native-screens、react-native-safe-area-context两个库,如果你没有手动安装这两个库,或安装的版本和当前React Navigation版本不兼容,也会触发该报错。 - 如果你使用的是Expo框架,不要直接用npm/yarn安装React Navigation相关依赖,要使用
npx expo install命令安装,Expo会自动匹配适配当前SDK版本的依赖版本,避免版本冲突。 - 如果版本核对后仍有问题,可以删除项目根目录的
node_modules文件夹、package-lock.json(或yarn.lock、pnpm-lock.yaml)文件后重新执行安装命令,清除缓存的依赖冲突。
你给出的代码本身逻辑没有语法问题,只要依赖配置正确即可正常运行。
内容的提问来源于stack exchange,提问作者Ofek Kandel
相关产品推荐
相关产品推荐

