React native Android Picker 不显示数据

React native Android Picker not showing data

picker 本身就是它的展示,而不是它的数据。此外,当我点击它时,它会显示一个空白的白色标签。

{/* Order by picker */}
<View style={globalStyles.rowView}>{/* FlexDirection:'row' */}
    <Text style={[globalStyles.text,styles.text]}>Ordenar por:</Text> {/* color:colors.white, fontSize:"17rem"*/}
    <Picker style={[globalStyles.text, styles.picker]}{/* color:colors.white, fontSize:"17rem"*/}{/* flex:1 */}
       selectedValue={this.state.orden}
       onValueChange={(itemIndex)=>{this.setState({orden:this.state.ordenar[itemIndex]})}}>

       {this.state.ordenar.map(element => {
           <Picker.Item label={element} value={element}/>
        })}

     </Picker>
</View>

当我尝试

<Picker.Item label={this.state.orden} value={this.state.orden}/>

或与

<Picker.Item label={this.state.ordenar[1]} value={this.state.ordenar[1]}/>

它们都有效,所以 this.state.ordenthis.state.ordenar 不是空的,我想这不是样式或 flexbox 的问题,因为第二种方式是显示数据,所以我想问题出在 map 函数

您必须 return jsx 地图功能中的元素才能使其正常工作。 请参考下面的代码片段,我已经更新了您的地图功能。

 {/* Order by picker */}
    <View style={globalStyles.rowView}>{/* FlexDirection:'row' */}
        <Text style={[globalStyles.text,styles.text]}>Ordenar por:</Text> {/* color:colors.white, fontSize:"17rem"*/}
        <Picker style={[globalStyles.text, styles.picker]}{/* color:colors.white, fontSize:"17rem"*/}{/* flex:1 */}
           selectedValue={this.state.orden}
           onValueChange={(itemIndex)=>{this.setState({orden:this.state.ordenar[itemIndex]})}}>

           {this.state.ordenar.map(element => {
               return(<Picker.Item label={element} value={element}/>) /*wrap your picker item around return.*/
            })}

         </Picker>
    </View>