猿问

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函数上


HUX布斯
浏览 223回答 1
1回答

白猪掌柜的

您必须从 map 函数中返回jsx元素才能使其工作。请参阅下面的代码片段,我已经更新了您的地图功能。&nbsp;{/* Order by picker */}&nbsp; &nbsp; <View style={globalStyles.rowView}>{/* FlexDirection:'row' */}&nbsp; &nbsp; &nbsp; &nbsp; <Text style={[globalStyles.text,styles.text]}>Ordenar por:</Text> {/* color:colors.white, fontSize:"17rem"*/}&nbsp; &nbsp; &nbsp; &nbsp; <Picker style={[globalStyles.text, styles.picker]}{/* color:colors.white, fontSize:"17rem"*/}{/* flex:1 */}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selectedValue={this.state.orden}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;onValueChange={(itemIndex)=>{this.setState({orden:this.state.ordenar[itemIndex]})}}>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{this.state.ordenar.map(element => {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return(<Picker.Item label={element} value={element}/>) /*wrap your picker item around return.*/&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</Picker>&nbsp; &nbsp; </View>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答