【问题标题】:How to dispatch action with result of apollo query?如何使用 apollo 查询的结果调度操作?
【发布时间】: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。

标签: reactjs redux apollo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-02-16
    • 2017-12-27
    • 2020-04-10
    • 2017-04-07
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2018-02-09
    • 2021-08-05
    相关资源
    最近更新 更多