如何使用 apollo 查询的结果调度操作?

How to dispatch action with result of apollo query?

在根组件中,我有 Apollo Query,它从服务器检索数据,然后我想立即将此数据分派到 redux 存储,然后在 child 的组件中首次渲染时使用它。 所以方案是这样的:

<ApolloProvider>
  <ReduxProvider>
    <SomeChildComponent /> --- Can be a lot of nested components
  </ReduxProvider>
</ApolloProvider>

现在我正在使用 React.Context 将数据从 Query 传递到所有 child 组件,并通过 redux 对本地状态执行其他操作。但我需要将该查询结果放在 redux 存储中。

那么我应该把这个数据的调度方法放在哪里呢? 我不能使用 componentDidMount 因为我需要在 children 第一次渲染之前处理这些数据。以及为什么我需要 componentDidMount 来获取已经获取并可以使用的数据。

我看到在 render 方法中分派它的唯一方法,但我知道那根本就是反模式,并且找不到关于我的案例的信息,因为每个问题都是关于通过 redux 获取数据的,但我已经知道了,所以如何处理这个?

您可以将一个函数传递给查询组件的onCompleted 属性,它接收结果数据作为第一个参数。您可以从那里发送您的操作。