Я много видел об этом в интернете, но нет четкого решения.
У меня есть некоторые данные, поступающие с firebase, например:
getSuggestedList() {
var suggestedList = this;
firebase
.database()
.ref("/athleteList/")
.orderByChild("suggested/")
.equalTo(true)
.on("child_added", function(suggestedListData) {
var newData = [...suggestedList.state.suggestedListViewData];
newData.push(suggestedListData);
suggestedList.setState({ suggestedListViewData: newData });
});
}
Itзатем визуализируется ниже с помощью этой функции:
renderRow(suggestedListData) {
return (
<ListItem>
<CheckBox
checked={suggestedListData.selected}
onPress={() => {
suggestedListData.selected = !suggestedListData.selected;
}}
/>
<Body>
<Text>{suggestedListData._value.name}</Text>
</Body>
</ListItem>
);
}
И в основной части кода render ():
<ListView
enableEmptySections
dataSource={this.ds.cloneWithRows(
this.state.suggestedListViewData
)}
renderRow={this.renderRow.bind(this)}
/>
Я бы предположил, где я установил флажок, чтобы он равнялся предложилListData.выберите и затем измените это значение с помощью onPress, это просто не происходит в представлении.Значение действительно меняется, я вижу его в консоли, но оно не обновляет элемент.
Пожалуйста, кто-нибудь может помочь.