【问题标题】:How to get refetchQueries data in reactjs 16.8如何在 reactjs 16.8 中获取 refetchQueries 数据
【发布时间】:2019-12-15 18:05:31
【问题描述】:

我正在尝试使用 refetchQueries 在突变后获取更新的记录列表。我尝试使用下面的代码来获取更新的数据,但更新的数据显示在开发者控制台的network tab中。

这是针对 reactjs 16.8 和 "react-apollo": "^2.5.5" 的,它似乎 awaitRefetchQueries: true 不起作用

client.mutate({
        mutation: ADD_ACTIVE_CREW,
        variables: {
          activeCrewInfo: {
            employee: activeCrew[0].vp_id,
            date_on_crew: new Date(),
            crew_id: selectedCrewId
          }
        },
        options: () => ({
          refetchQueries: [
            {
              query: GET_EMPLOYEE_BY_CREW_ID_QUERY,
              variables: { crew_id: crew_id }
            }
          ]
        }),
        awaitRefetchQueries: true

      });

我在开发者控制台的网络选项卡中得到正确响应,但无法在我的 reactjs 应用程序中访问。

【问题讨论】:

  • .then(() => this.setState(whatever))
  • ` .then(result => { const arrUpdatedData = result.data; console.log(arrUpdatedData); }) .catch(err => console.log(err)); ` 我已经检查了上面的代码,但没有得到正确的数据。

标签: reactjs graphql react-apollo hasura


【解决方案1】:

变异数据本身永远不会反映重新获取的查询。

您告诉 Apollo 重新获取的任何查询都将被请求,然后将其结果写入缓存。这意味着任何Query 组件或使用useQuery 或watchQuery 的组件都将被更新,前提是query 和variables 参数与refetchQueries 中的内容匹配。

如果您还没有使用该查询的组件,则需要添加一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-02
    • 2020-09-01
    • 2020-09-02
    • 1970-01-01
    • 2021-04-04
    • 2021-04-23
    • 1970-01-01
    • 2018-09-04
    相关资源
    最近更新 更多