Я пытаюсь отобразить несколько флажков на основе данных массива, полученных с сервера. Вот как я объявил мою переменную состояния
this.state = {
isLoading: true,
checkBoxes: []
};
//This is how I set value in componentDidMount
componentDidMount() {
console.log("Data from JSON = " + JSON.stringify(this.props.dataSource[GLOBAL.JSONKEYS.OPTIONS]));
this.setState({
checkBoxes: JSON.stringify(this.props.dataSource[GLOBAL.JSONKEYS.OPTIONS]),
isLoading: false
});
}
render() {
if (this.state.isLoading) {
return (
<View style={styles.activityStyle}>
<ActivityIndicator size="large" />
</View>
);
}
console.log("checkboxArray in render = " + this.state.checkBoxes);
... code to render view
}
Ниже приведен итоговый журнал на консоли
Данные из JSON =
[{ "ID": 1, "значение": "Категория1", "IsChecked" ложь}, { "идентификатор": 2, "значение": "Категория2", "IsChecked" ложь}, { "идентификатор": 3, "значение": "Category3", "IsChecked" ложь}, { "идентификатор": 4, "значение": "Другой", "IsChecked" ложь}]
checkboxArray in render =
Как вы видите, несмотря на то, что я получаю данные в componentDidMount, checkboxArray в методе рендеринга все еще кажется нулевым. Похоже, его значение не устанавливается. Я что-то здесь не так делаю? Любая помощь приветствуется.