【发布时间】:2020-01-09 10:40:36
【问题描述】:
在根组件中,我有 Apollo Query,它从服务器检索数据,然后我想立即将这些数据分派到 redux 存储,然后在第一次渲染时在子组件中使用它。 所以方案是这样的:
<ApolloProvider>
<ReduxProvider>
<SomeChildComponent /> --- Can be a lot of nested components
</ReduxProvider>
</ApolloProvider>
现在我使用React.Context 将数据从Query 传递给所有子组件,并通过redux 处理本地状态的其他事情。但我需要该查询结果在 redux 存储中。
那么我应该把这个数据的调度方法放在哪里呢?
我不能使用componentDidMount,因为我需要在孩子第一次渲染之前处理这些数据。还有为什么我需要componentDidMount 来获取已经获取并准备好使用的数据。
我看到了在渲染方法中调度它的唯一方法,但我知道这根本是反模式,并且找不到关于我的案例的信息,因为每个问题都是关于通过 redux 获取数据但我已经有了它,所以如何处理有了这个?
【问题讨论】:
-
“在根组件中”。如果这是一个新项目,我建议您使用新的 Hooks API 并停止使用 Redux。