导入react-native-safe-area-context的SafeAreaProvider提示RNCSafeAreaProvider重名错误
报错原因
Tried to register two views with the same name RNCSafeAreaProvider 报错的核心是项目中存在两个不同版本的 react-native-safe-area-context 依赖,导致同名原生组件重复注册。从报错日志可以看出你使用的是Expo框架,Expo SDK默认已经内置了该依赖,你手动安装的版本和内置版本不匹配就会触发该冲突。
解决步骤
- 首先卸载你手动安装的依赖:
如果你用npm,执行:npm uninstall react-native-safe-area-context
如果你用yarn,执行:yarn remove react-native-safe-area-context - 清除项目缓存重启:
执行npx expo start --clear启动项目,不需要再手动安装该依赖,直接使用Expo内置版本即可,你现有的App.js导入逻辑无需修改。 - 如果执行以上操作后问题仍然存在,说明其他第三方依赖间接安装了不同版本的
react-native-safe-area-context,执行以下命令查看所有已安装的版本:npm ls react-native-safe-area-context
找到引入异版本的依赖,将其调整到和Expo内置版本兼容的版本即可。 - 如果你确实需要手动指定该依赖版本,不要直接用npm/yarn安装,使用Expo适配命令安装:
npx expo install react-native-safe-area-context
该命令会自动安装和你当前Expo SDK版本匹配的依赖版本,不会出现冲突。
内容的提问来源于stack exchange,提问作者Ashish Parab
相关产品推荐
相关产品推荐

