安装@react-navigation/bottom-tabs@next遇依赖冲突 清缓存重装无效求助
依赖冲突适配方案
冲突根源
当前存在React Navigation 5、6版本混装问题:@react-navigation/native走6.x预发线,但@react-navigation/stack停留在5.14.4版本,两类版本的peer依赖校验规则不兼容,此时安装同属6.x线的@react-navigation/bottom-tabs@next必然触发依赖冲突。这类版本混用问题和包缓存无关,清缓存、整体重装无法从根上解决。
具体操作步骤
- 第一步:彻底卸载现有混装的导航依赖
执行命令移除旧版本导航包,避免残留版本干扰安装过程:npm uninstall @react-navigation/native @react-navigation/stack @react-navigation/bottom-tabs - 第二步:安装适配当前环境的统一6.x稳定版导航依赖
不使用next预发版本减少未知兼容问题,对应安装和现有React Native 0.64、React 17.0.1匹配的稳定版本:
执行安装命令:npm install @react-navigation/native@^6.1.18 @react-navigation/stack@^6.3.29 @react-navigation/bottom-tabs@^6.6.1
上述版本组的peer依赖完全对齐,安装过程不会触发版本冲突 - 第三步:校验现有配套原生依赖的适配性
当前已安装的@react-native-masked-view/masked-view@^0.2.3、react-native-gesture-handler@^1.10.3、react-native-reanimated@^2.1.0、react-native-safe-area-context@^3.2.0、react-native-screens@^3.1.1完全匹配导航6.x版本对React Native 0.64环境的要求,无需调整升级 - 第四步:规避特殊依赖的兼容问题
现有native-base@2.15.2内置组件依赖React Navigation 4.x的内部API,集成时不要直接使用其内置的导航相关组件,需要基于6.x导航API重新做对应封装,避免运行时调用旧API报错 - 安装注意事项
安装过程中如果出现peer依赖冲突提示,不要使用--force、--legacy-peer-deps参数跳过校验,逐一对齐对应包的版本号即可,强装依赖会导致运行时出现导航跳转失效、页面白屏等无明确报错的问题
内容的提问来源于stack exchange,提问作者LIU lin
相关产品推荐
相关产品推荐

