使用React Native DateTimePicker报错null is not an object如何解决
修复方案
1. 全量清除缓存重新构建
原生模块未正常链接大概率是本地缓存导致,按顺序执行以下操作:
- 停止当前运行的Metro服务和所有项目进程
- 执行命令重装依赖:
rm -rf node_modules && npm install - 进入ios目录执行命令重置iOS依赖:
rm -rf Pods Podfile.lock && pod install --repo-update - 打开Xcode,按
Shift+Command+K清理构建缓存,或者点击顶部菜单Product -> Clean Build Folder - 启动Metro时追加清理缓存参数:
npx react-native start --reset-cache - 重新运行项目:
npx react-native run-ios
2. 降级依赖版本适配Xcode 12.5
你使用的Xcode 12.5对@react-native-community/datetimepicker 3.5.x版本兼容性不佳,可降级到更稳定的3.4.7版本:
- 执行命令安装指定版本:
npm install @react-native-community/datetimepicker@3.4.7 --save - 重新执行ios目录下的pod install操作,清缓存后重新构建项目
3. 补充组件必填参数
iOS 14及以上系统对DateTimePicker的展示模式有强制要求,你当前的代码未指定display属性,可补充参数测试:
return <DateTimePicker value={date} onChange={onChange} display="spinner" />
可根据需求替换display参数为default/spinner/calendar/clock测试效果。
4. 手动链接原生模块
如果自动链接失效,可手动执行链接命令后重新构建:npx react-native link @react-native-community/datetimepicker
内容的提问来源于stack exchange,提问作者Janvier
相关产品推荐
相关产品推荐

