Я использую React Native 0.55.4 и native-base 2.4.4.Я хочу отобразить список со средствами выбора.
<List dataArray={action.dates}
renderRow={(date, _, rowID) =>
<ListItem>
<Text>{rowID} {Moment(date.start).format('MMM Do YY')}: {Moment(date.start).format('hh:mm')} - {Moment(date.end).format('hh:mm')}</Text>
<Form>
<Picker
mode="dropdown"
style={{ width: 160 }}
selectedValue={this.state.selected_date[rowID]}
onValueChange={(value, rowID) => this.onValueChange(value, rowID)}
//onValueChange={this.onValueChange(rowID).bind(this)}
>
<Picker.Item label="-" value="-1" key="-1" />
<Picker.Item label="YES" value="0" key="0"/>
<Picker.Item label="NO" value="1" key="1"/>
</Picker>
</Form>
</ListItem>
}>
</List>
Вот функция, которая изменяет значение выбранного элемента:
onValueChange(value, rId) {
let sd = this.state.selected_date.slice();
sd[rId] = value;
this.setState({selected_date: sd});
}
Я храню информацию о значении элементасписок в state.selected_date
, который является массивом.Я создаю его в конструкторе:
av = Array(action.dates.length).fill("-1");
this.state = {
selected_date: av
};
Когда я щелкаю в моем приложении на сборщике и меняю его значение, я вижу в консоли, что он работает, но он не изменяется (рендерится) в приложении.
Как изменить приведенный выше пример, чтобы изменить его в приложении?