javascript - 无法将状态中的字符串数组映射到 React Native Picker 中的 Picker.item
问题描述
我正在尝试使用存储在状态中的字符串数组填充 React Native 选择器:
constructor(props) {
super(props);
this.state = {
designations: ["test", "test2"],
...
}
...
}
我想要的是让我的 Picker 元素在我的状态下从这个数组中的值填充 Picker.Items。
这是我的选择器:
<Picker
selectedValue={this.state.designations[0]}
onValueChange={(itemValue, itemIndex) => this.setState({ designation: itemValue })}
{...Object.keys(this.state.designations).map((key) => {
return (<Picker.Item label={this.state.designations[key]} value={key} key={key}/>)
})}
/>
我没有收到此配置的错误,但是 Picker 根本没有任何项目。
在阅读了这个关于做我想做的事情的线程之后,我注意到他们的“对象”前面没有扩展运算符 (...)。但是,当我尝试在我的代码中执行此操作时,我收到以下错误:
'...' expected.
我还尝试了以下方法(也来自该线程):
{...this.state.designations.map((item, index) => {
return (<Picker.Item label={item} value={index} key={index}/>)
})}
但不幸的是,它与上述问题完全相同。如果我不使用扩展运算符,我会收到错误消息,并且当我使用扩展运算符时,选择器列表不会被填充。
非常欢迎任何帮助或指导。
解决方案
推荐阅读
- javascript - router.delete 返回空数组
- c++ - 在 C 中指定小数点后的值应该可以更改
- javascript - 通过 Jquery (localStorage) 记住颜色选择
- javascript - 如何判断 Vue 组件是否已卸载以防止异步函数访问已卸载组件的数据?
- mysql - Java FXML - NetBeans - 从表中删除 - MySQL
- laravel - 如何限制 Laravel 中的广播事件?
- wordpress - 在每个帖子发布后创建一个 Cron 作业
- flutter - 水平翻转动画 ImageWidget Flutter
- javascript - 意外的标识符,而
- c# - 在 Xamarin 中导航到本机表单会产生空引用异常