javascript - Invariant Violation:试图注册两个同名的视图RNCAndroidDropdownPicker
问题描述
导入并使用模块 react-native-picker 后:
import {Picker} from '@react-native-picker/picker';
<Picker
selectedValue={this.state.language}
style={{height: 50, width: 100}}
onValueChange={(itemValue, itemIndex) =>
this.setState({language: itemValue})
}>
<Picker.Item label="Java" value="java" />
<Picker.Item label="JavaScript" value="js" />
</Picker>
我收到以下错误:
Invariant Violation: Tried to register two views with the same name RNCAndroidDropdownPicker
这里出了什么问题?
解决方案
要摆脱这种情况,请执行以下操作:
由于错误是关于注册两个具有相同名称的视图,因此请Picker
以这种方式声明:
import { Picker as SelectPicker } from '@react-native-picker/picker';
代替import { Picker } from '@react-native-picker/picker';
并像这样实现:
<SelectPicker
selectedValue={this.state.language}
style={{ height: 50, width: 100 }}
onValueChange={(itemValue, itemIndex) =>
this.setState({ language: itemValue })
}>
<SelectPicker.Item label="Java" value="java" />
<SelectPicker.Item label="JavaScript" value="js" />
</SelectPicker>
如果上述解决方案不起作用,请执行此操作
$ npm uninstall --save-dev @react-native-picker/picker
$ npm i @react-native-picker/picker --save
$ cd android
$ ./gradlew clean
$ cd ..
$ react-native run-android
更新:
这是native-base
. 像这样卸载native-base
并重新安装:
$ npm uninstall native-base --save
$ npm install native-base --save
此问题已在最新版本的native-base
.
推荐阅读
- php - 如何执行十个循环,如果 20 个项目循环运行两次,依此类推
- c# - 缩短 resx 文件 WinForm
- spring-boot - Spring boot JPA坚持多对多单向关系
- javascript - 从 db 中添加或删除列,其中 datatables 库在 codecanyon codeigniter 脚本中使用
- python - 如何将路径参数传递给 Pydantic 模型?
- tsql - TSQL - 在一个字符串中,每 2 个字符用一个固定的字符替换一个字符
- android - 如何以编程方式修复/(阻止滚动)RecyclerView 的前几个元素
- angular - AWS Cognito 托管 UI
- swiftui - SwiftUI 中可观察类中可选数据类型的选择器?
- dataweave - 如何使用 dataweave 操作输入以获得所需的输出?