Помните, что вы должны передать функцию в array.map
, и функция не может иметь такой оператор, как <Picker.Item label={client.name} value={client.id} />;
.Вы должны добавить инструкцию возврата раньше.Ниже приведено правильное:
<Picker
style={{ width: "100%" }}
mode="dropdown"
selectedValue={move.client}
onValueChange={this.handleChange("client")}
>
{this.state.clients !== "" ? (
this.state.clients.map(client => {
return <Picker.Item label={client.name} value={client.id} />;
})
) : (
<Picker.Item label="Loading..." value="0" />
)}
</Picker>
А также, кажется, есть путаница с this.state.clients !== ""
(видел ваши комментарии выше и думал о том, чтобы ответить на него) .Вы можете сравнить его с тем, как вы инициализировали this.state
внутри constructor(props)
функции внутри вашего класса.
, например:
, если ваш код имеет вид:
constructor(props){
super(props);
this.state={clients:{}};
}
тогда вы должны:
{this.state.clients !== {} ? (<Picker.Item />):(<Picker.Item label='loading' />)}
или если ваш код выглядит так:
constructor(props){
super(props);
this.state={clients:''};
}
, тогда вы должны:
{this.state.clients !== '' ? (<Picker.Item />):(<Picker.Item label='loading' />)}