React Native使用DateTimePicker报Can't resolve './picker'错误
报错原因
Module not found: Can't resolve './picker' 报错由两类常见问题触发:
- 安装的
@react-native-community/datetimepicker版本和当前项目的Expo SDK版本不匹配。Expo对原生依赖有严格的版本对应要求,手动安装最新版时很容易出现文件结构、原生映射不兼容的问题,打包时就会找不到对应模块文件。 - 在Web端调试运行Expo项目。该组件是面向安卓、iOS原生端设计的,默认不会导出Web端可识别的picker实现,Web打包工具解析到安卓端源码时,自然找不到对应的picker依赖文件。
修复方案
按顺序操作即可解决问题:
- 优先安装和当前Expo SDK版本适配的依赖包,不要手动指定最新版本,执行Expo官方的依赖匹配安装命令:
安装完成后清除缓存重启开发服务:npx expo install @react-native-community/datetimepickernpx expo start -c - 如果需要兼容Web端运行,要额外安装Web端适配依赖,同时做平台渲染拆分:
- 安装缺失的Web适配依赖:
npm install @react-native-picker/picker - 编写组件时按运行平台拆分逻辑:原生端使用原DateTimePicker组件,Web端使用适配的picker实现,避免Web环境加载安卓/iOS端的原生源码。
- 安装缺失的Web适配依赖:
- 以上操作无效时,直接删除项目下的
node_modules文件夹和依赖锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行npm install(或对应包管理器的安装命令)后再重启服务,这类偶发的模块找不到问题很多是依赖安装过程中文件损坏、缺失导致的。
内容的提问来源于stack exchange,提问作者André
相关产品推荐
相关产品推荐

