首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不变冲突:尝试使用同名RNCAndroidDropdownPicker注册两个视图

不变冲突:尝试使用同名RNCAndroidDropdownPicker注册两个视图
EN

Stack Overflow用户
提问于 2020-12-27 13:49:34
回答 6查看 14.1K关注 0票数 6

在导入和使用模块之后,react本机选择器:

代码语言:javascript
复制
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>   

我得到以下错误:

代码语言:javascript
复制
Invariant Violation: Tried to register two views with the same name RNCAndroidDropdownPicker

这里出了什么问题?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2020-12-27 14:39:46

要消除这种情况,请执行以下操作:

由于错误是关于以相同的名称注册两个视图,所以以这种方式声明您的Picker

代码语言:javascript
复制
import { Picker as SelectPicker } from '@react-native-picker/picker';

而不是import { Picker } from '@react-native-picker/picker';

并实施如下:

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
$ 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并按以下方式重新安装:

代码语言:javascript
复制
$ npm uninstall native-base --save
$ npm install native-base --save

这个问题已在native-base的最新版本中得到修正。

票数 12
EN

Stack Overflow用户

发布于 2021-11-25 08:54:27

只需将native-base更新为最新版本,错误就会得到解决。

票数 4
EN

Stack Overflow用户

发布于 2021-07-01 05:18:09

这个问题的原因,

项目中使用的内部包依赖于@react-native-community/picker。我使用的是native-base:2.15.2,它依赖于@react-native-picker/picker。因此,@react-native-community/picker@react-native-picker/picker之间存在着冲突。

我是如何找到事业的

package-lock.json文件中搜索picker并找到上面给出的两个相关包。

溶液

我选择了一个旧版本的native-base:2.13.12,它不依赖于@react-native-picker/picker

为什么我决定选择一个不同版本的native-base:

  1. 我无法更换内部包裹。
  2. 我在项目中没有直接使用Picker
  3. 即使我使用它,我也可以使用@react-native-community/picker提供的。

我希望它能提供更好的洞察力。

干杯!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65466440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档