使用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
相关产品推荐
相关产品推荐

