如何解决React Native中Amplify注册UI点击报错的问题
报错原因
- 依赖冲突:项目同时安装了已废弃的
@react-native-community/picker和当前官方维护的@react-native-picker/picker两个Picker相关依赖,Amplify UI的SignUp组件调用新Picker包的原生组件时出现引用混乱。忘记密码页面没有内置Picker控件所以不会触发报错,SignUp页面有下拉选择逻辑需要加载Picker组件,所以只有点击注册时会触发错误。 - 版本不兼容:当前使用的Expo SDK 37版本过旧,默认适配的
@react-native-picker/picker最高版本为1.x,你手动安装的2.2.1版本和Expo 37、aws-amplify-react-native v6的依赖要求不匹配,无法正常识别高版本Picker新增的RNCAndroidDialogPicker原生组件。
修复方案
- 第一步:卸载冲突的冗余依赖,执行如下命令:
npm环境执行:npm uninstall @react-native-community/picker react-native-android-dialog-picker
yarn环境执行:yarn remove @react-native-community/picker react-native-android-dialog-picker - 第二步:降级
@react-native-picker/picker到和Expo 37兼容的匹配版本:npm install @react-native-picker/picker@1.16.1
该版本是Expo 37官方支持的最高Picker版本,可正常适配aws-amplify-react-native v6的UI组件。 - 第三步:清除项目缓存重启服务:
执行expo start -c启动项目,同时卸载手机上已安装的旧版开发包,重新编译安装即可解决问题。
内容的提问来源于stack exchange,提问作者sdrafahl
相关产品推荐
相关产品推荐

