我的选择器有问题(仅在android中)。在iPhone中,我没有任何问题。 当我选择一个项目时,在android中不会更新组合框内的文本(但该对象已确定)。 我附上代码:
<View style={[Styles.PickerSelect, { width: “70%” }]}>
<Picker
headerBackButtonText="Atras"
iosHeader="Seleccionar"
selectedValue={this.state.articulo}
placeholder={this.state.articulo}
onValueChange={this.getDatosLineas.bind(this)>
{this.state.articulos && this.state.articulos.map((item, i) => {
return (
<Picker.Item
key={i}
value={i}
label={item.nom_articulo}/>
);
})}
</Picker>
</View>
我附上示例照片: 在1-中,当我进入该部分时,我将获得带有该文本和值的选择器。 在2-中,选择选择器,然后选择另一个项目(例如“ ORUJO DE UVAS BLANCAS”) 在3- Android中,文本不会更新。但是对象是选定的……
我重复一遍,在ios中,我没有这个问题。
Expo SDK:36.0.0 谢谢!
答案 0 :(得分:0)
您需要使用选择器标记内onValueChange()回调中的 setState()方法在 articulo 变量中设置选定的值。
<View style={[Styles.PickerSelect, { width: “70%” }]}>
<Picker
headerBackButtonText="Atras"
iosHeader="Seleccionar"
selectedValue={this.state.articulo}
placeholder={this.state.articulo}
onValueChange={(itemValue, itemPosition) =>
this.setState({articulo: itemValue, choosenIndex: itemPosition})}>
{this.state.articulos && this.state.articulos.map((item, i) => {
return (
<Picker.Item
key={i}
value={i}
label={item.nom_articulo}/>
);
})}