与ListView不同,我们可以更新this.state.datasource。有没有更新FlatList或重新渲染它的方法或示例?如何重新呈现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} />
的[文档的FlatList(https://facebook.github.io/react-native/docs /flatlist.html)说:“这是一个'PureComponent',这意味着如果道具保持浅的平衡,它将不会重新渲染。确保'renderItem'函数所依赖的所有东西都作为不属于'= =='更新后,否则你的用户界面可能无法更新更改,包括'data' prop和父组件状态。你遵循这个建议吗? –
无论我用'extraData'和'shouldItemUpdate'尝试了什么,我都无法获得重新呈现的列表。我最终做的是清除状态,等待它呈现并更新状态。 'this.setState({data:null},()=> {this.setState({data:actualData})});' –