W przeciwieństwie do ListView możemy zaktualizować this.state.datasource. Czy jest jakaś metoda lub przykład aktualizacji FlatList lub ponownego renderowania?
Moim celem jest aktualizacja wartości tekstowej, gdy użytkownik naciśnie przycisk ...
renderEntries({ item, index }) {
return(
<TouchableHighlight onPress={()=> this.setState({value: this.state.data[index].value+1})>
<Text>{this.state.data[index].value}</Text>
</TouchableHighlight>
)
}
<FlatList
ref={(ref) => { this.list = ref; }}
keyExtractor={(item) => item.entry.entryId}
data={this.state.data}
renderItem={this.renderEntries.bind(this)}
horizontal={false} />
PureComponent
co oznacza, że nie wyrenderuje się ponownie, jeśli właściwości pozostają płytkie - równe. Upewnij się, że wszystko, od czegorenderItem
zależy twoja funkcja, jest przekazywane jako właściwość, która nie jest===
po aktualizacji, w przeciwnym razie interfejs użytkownika może się nie zaktualizować po zmianach. Obejmuje to stan właściwościdata
i komponentu nadrzędnego ”. Czy postępujesz zgodnie z tą radą?