You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NativeBase Picker组件时出现Cannot read property 'item' of undefined错误

解决Native Base Picker.Item报错"Cannot read property 'item' of undefined"

这个错误的核心原因是你当前使用的Native Base版本中,Picker组件上并没有Item这个属性,导致访问Picker.Item时触发undefined错误。以下是针对性的解决方案:

方案1:适配Native Base v3版本(推荐)

Native Base v3已经弃用了原有的Picker组件,改用Select组件实现下拉选择功能,用法如下:

首先修改导入语句:

import { Select } from 'native-base';

然后替换原有的Picker代码块:

<Select
  selectedValue={type}
  style={{ width: 120 }}
  placeholder="Select Data Type"
  onValueChange={onTypeChanged}
>
  <Select.Item label="Links" value="links" />
  <Select.Item label="Location" value="location" />
  <Select.Item label="Phone" value="phone" />
  <Select.Item label="Website" value="website" />
  <Select.Item label="Email" value="email" />
</Select>

方案2:适配Native Base v2版本

如果仍在使用v2版本,先确认native-base是否正确安装,若安装异常可重新安装:

npm install native-base --save

同时修正代码中的其他小问题:

  • TextInput的data输入框,onChangeText里的setData(data)要改为setData(text),否则输入内容不会更新
  • Picker的selectedValue要绑定状态type,而不是固定为null
  • 函数组件无需使用bind(this),直接传递onTypeChanged即可

修正后的Picker部分代码:

<Picker
  mode="dropdown"
  style={{ width: 120 }}
  selectedValue={type}
  onValueChange={onTypeChanged}
  placeholder="Select Data Type"
>
  <Picker.Item label="Links" value="links" />
  <Picker.Item label="Location" value="location" />
  <Picker.Item label="Phone" value="phone" />
  <Picker.Item label="Website" value="website" />
  <Picker.Item label="Email" value="email" />
</Picker>

内容的提问来源于stack exchange,提问作者Alireza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 16:55:30