rn项目,使用npm i @ant-design/react-native
下载antd。
下载依赖时报错:
如果你也遇到这个问题,直接告诉你结论,那就是最新的@ant-design/react-native5.0.3不支持react 18。要么使用--legacy-peer-deps忽略警告,但可能会在真机上出现bug,要么自己手动降到react 17。
如果你对为什么感兴趣的话,可以接着往下看。
报错中说的是@react-native-picker/[email protected]只支持react 16或17。
查看一下@react-native-picker/picker版本,大版本为1的最新版本确实就是@1.16.8,已经没法再更新了。
奇怪,难道@ant-design/[email protected]的依赖中,react版本号不是18?
我先到npm上搜了一下,@ant-design/react-native对应的github仓库是ant-design-mobile-rn。
然后到github上看[email protected]的package.json,发现react的版本为17.0.2。
破案,原来@ant-design/[email protected]并不支持react 18。
去到issue上一查,果然有这个问题https://github.com/ant-design/ant-design-mobile-rn/issues/1284。
issue中,工作人员说支持react 18,提问者说大部分情况下没问题,但是在ios上会出现闪退。
接下来有两个想法,要么使用--legacy-peer-deps忽略警告,但是可能会在ios上出现bug,要么将react降到17。
我优先尝试后者,毕竟项目的稳定运行最重要。
但试了一会儿我放弃了,因为降到react 17后,react-native对应的项目模板没有配typescript,只有使用react 18的版本中才配了typescript。
这样的话...我选择使用--force强制下载依赖,因为我现阶段只是学习使用rn开发项目,而不是真正开发商业rn项目,所以先自己怎么舒服怎么来。
要是什么时候工作中要用到rn开发新项目了,那就不得不使用react 17,然后自己配typescript了。知道原因,后续怎么做就清晰了。
标签:ant,17,react,design,rn,native From: https://www.cnblogs.com/hdxg/p/17128007.html