使用Expo开发React Native应用时出现Module not found: Can't resolve 'react-dom/unstable-native-dependencies'错误,如何解决?
解决Expo网页端Module not found: Can't resolve 'react-dom/unstable-native-dependencies'错误
这个问题我之前帮朋友排查过,核心原因很明确:React 17.0.0移除了react-dom/unstable-native-dependencies这个内部模块,而你当前使用的Expo SDK 38(对应的react-native版本是sdk-38.0.2)是基于React 16.x版本开发的,两者版本不匹配就触发了这个找不到模块的错误。
下面是具体的解决步骤:
第一步:降级React和react-dom到SDK 38兼容的版本
Expo SDK 38官方要求的React版本是16.13.1,所以你需要执行以下命令来安装对应版本:# npm用户 npm install react@16.13.1 react-dom@16.13.1 # yarn用户 yarn add react@16.13.1 react-dom@16.13.1第二步:清理项目缓存
为了避免旧版本依赖的缓存残留,运行Expo的清理启动命令:npx expo start --clear如果还是有问题,可以手动删除
node_modules文件夹、package-lock.json(或yarn.lock),然后重新执行npm install或yarn install。第三步:验证依赖版本
打开你的package.json,确认依赖部分应该是这样的:"react": "16.13.1", "react-dom": "16.13.1", "react-native": "https://github.com/expo/react-native/archive/sdk-38.0.2.tar.gz"
另外补充一点:如果之后你想升级到React 17,必须同步升级Expo SDK到支持React 17的版本(比如SDK 40及以上),Expo的每个SDK版本都有严格的React版本对应关系,不能随意跨版本搭配哦。
内容的提问来源于stack exchange,提问作者Sabri Yaşar
相关产品推荐
相关产品推荐

