首页 > 解决方案 > React本机Android Picker不显示数据

问题描述

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.orden不是this.state.ordenar空的,我想这不是样式或弹性框的问题,因为第二种方式是显示数据,所以我认为问题出在map函数上

标签: javascriptreactjsreact-nativereact-native-androidexpo

解决方案


您必须从 map 函数中返回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>

推荐阅读