不变违规:尝试注册两个同名的视图 RNCAndroidDropdownPicker

Rod*_*o V 7 javascript react-native

导入并使用模块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>   
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Invariant Violation: Tried to register two views with the same name RNCAndroidDropdownPicker
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

Sha*_*san 12

要摆脱它,请执行以下操作:

由于错误是关于注册两个同名的视图,因此Picker以这种方式声明:

import { Picker as SelectPicker } from '@react-native-picker/picker';
Run Code Online (Sandbox Code Playgroud)

代替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>
Run Code Online (Sandbox Code Playgroud)

如果上述解决方案不起作用,请执行此操作

$ npm uninstall --save-dev @react-native-picker/picker
$ npm i @react-native-picker/picker --save
$ cd android
$ ./gradlew clean
$ cd ..
$ react-native run-android
Run Code Online (Sandbox Code Playgroud)

更新:

这是 的问题native-basenative-base像这样卸载并重新安装:

$ npm uninstall native-base --save
$ npm install native-base --save
Run Code Online (Sandbox Code Playgroud)

该问题已在最新版本的native-base.