试图找出将数据处理成反应组件的方法。
我实际上尝试了这两种方式:
A)国家方式
componentWillReceiveProps(nextProps) {
if (!nextProps.allPostsQuery.loading && !nextProps.allPostsQuery.error) {
this.setState({
postList: nextProps.allPostsQuery.allPosts,
})
}
}
render () {
return (
<FlatList data={this.state.postList}>
)
}
B)道具方式
render () {
return (
<FlatList data={this.props.allPostQuery.data}>
)
}
有关哪个/为什么的建议?
答案 0 :(得分:0)
我认为由于apollo-client标记,你有来自GraphQL的实现请求。假设如果你没有实现Redux,那么状态方法是确保组件被刷新,因为将触发render方法。如果你已经拥有Redux,那么props方式是最好的方法,因为当你的数据在全局状态下变化时会触发render方法。
答案 1 :(得分:0)
你可以直接使用道具方式。因为您正在使用apollo-client,它已经保存在redux存储中。因此,只要有来自任何组件的数据的更新,您也将在此组件中接收它,从而自动触发重新渲染。