В отличие от ListView, мы можем обновить this.state.datasource. Есть ли какой-либо метод или пример для обновления FlatList или повторного рендеринга?
Моя цель - обновить текстовое значение, когда пользователь нажимает кнопку ...
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
означает, что он не будет повторно визуализироваться, если реквизиты остаются мелкими - равными. Убедитесь, что все, от чегоrenderItem
зависит ваша функция, передается как опора, которая не===
после обновлений, иначе ваш пользовательский интерфейс может не обновляться при изменениях. Это включает в себя состояниеdata
опоры и родительского компонента ". Вы следуете этому совету?