React 18+NativeBase下SSRProvider无用警告的解决求助
解决React 18中SSRProvider冗余警告的方案
问题根源
你的项目代码里没直接引入SSRProvider,但NativeBase 3.4.28内部依赖的旧版@react-aria系列包仍会在React 18环境下自动注入该组件。而React 18已内置SSR相关支持,因此触发了冗余警告。
具体解决步骤
1. 升级NativeBase到兼容版本
NativeBase 3.x后期版本已修复该问题,直接升级到最新3.x稳定版:
npm install native-base@latest # 或使用yarn yarn add native-base@latest
2. 强制统一@react-aria/ssr版本
若升级NativeBase后警告仍存在,手动指定支持React 18的@react-aria/ssr版本:
yarn用户:在
package.json中添加resolutions字段"resolutions": { "@react-aria/ssr": "^3.8.0" }执行
yarn install生效。npm用户:先安装依赖工具,再配置版本
npm install -g npm-force-resolutions在
package.json中加入:"resolutions": { "@react-aria/ssr": "^3.8.0" }, "scripts": { "preinstall": "npx npm-force-resolutions" }执行
npm install生效。
3. 清理缓存并重启项目
完成上述操作后,清理缓存避免旧代码残留:
# 清理包管理器缓存 npm cache clean --force # 或 yarn cache clean # 清理React Native缓存 npx react-native start --reset-cache
之后重新启动项目。
4. 排查其他第三方依赖
若警告依旧,用命令查看依赖树,确认是否有其他库引入旧版@react-aria/ssr:
npm ls @react-aria/ssr # 或 yarn list @react-aria/ssr
找到对应依赖包后,要么升级该包,要么用resolutions强制替换其依赖的@react-aria/ssr版本。
内容的提问来源于stack exchange,提问作者avinash akula
相关产品推荐
相关产品推荐

