1

我有一个屏幕,可以从 Hasura 获取一些数据。我正在使用这样的东西:

// screen1.js
const {data} = useQuery(MY_QUERY)

screen1.js我有一个导航到的按钮screen2.js。在screen2.js我有一些突变会改变screen1.js. 当我更改此数据并执行突变时,我导航回screen1.js. 我希望相应screen1.js地更新数据。

我已经尝试了几种这样的解决方案(如文档中所建议的那样):

const {data} = useQuery(MY_QUERY, {fetchPolicy: "network-only", pollInterval: 500})

但这不起作用。我无法让我的查询成为订阅,因为我的查询调用了 Hasura 的自定义操作,我相信它们只支持查询和突变。

我认为一个解决方案是在我导航到那里时重新渲染screen1.js,但我不知道这是否是最佳解决方案。

4

1 回答 1

0

尝试将其用作您的默认选项:

const defaultOptions = {
  watchQuery: {
    fetchPolicy: 'no-cache',
    errorPolicy: 'ignore'
  },
  query: {
    fetchPolicy: 'no-cache',
    errorPolicy: 'all'
  }
}

它应该用于这样的事情,具体取决于您如何设置 Apollo:

    this.client = new ApolloClient({
      link: concat(authMiddleware, link),
      cache: new InMemoryCache(),
      defaultOptions
    })
于 2020-07-14T00:03:45.097 回答