我的主屏幕上有一个Post组件作为模块导入,并且有一个平面列表。当我单击“发布”组件上的按钮时,我希望主页上的平面列表能够进行更改并更新所选索引。但我想有些东西丢失了。
Post.js //
shouldComponentUpdate(nextProps) {
if(nextProps.data.is_bookmarked != this.state.data.is_bookmarked) {
this.setState({data: nextProps.data})
return true
}
else {
return false
}
}
...
<TouchableOpacity onPress={() => {
if(this.props.onConfirmed != undefined) {
this.props.onConfirmed(!this.state.data.is_bookmarked);
}
}}>
主页//
renderItem = ({ item, index }) => {
return (
<Post
onConfirmed={(index) => {
this.setState((prevstate) => {
prevstate.is_bookmarked = !item.is_bookmarked
return prevstate
})
}}
key = {item.id + '-' + item.is_bookmarked}
data={item}
></Post>
);
}
...
<FlatList
data={this.state.data}
renderItem={this.renderItem}
keyExtractor={item => item.id}
/>