首页 > 解决方案 > 无法将状态中的字符串数组映射到 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}/>) 
         })}

但不幸的是,它与上述问题完全相同。如果我不使用扩展运算符,我会收到错误消息,并且当我使用扩展运算符时,选择器列表不会被填充。

非常欢迎任何帮助或指导。

标签: javascriptnode.jsreactjsreact-native

解决方案


推荐阅读