我有一个屏幕,可以在其中从Hasura中获取一些数据。我正在使用这样的东西:
// screen1.js
const {data} = useQuery(MY_QUERY)
在screen1.js
中,有一个导航到screen2.js
的按钮。在screen2.js
中,我进行了一些更改,从而更改了在screen1.js
中获取的数据。当我更改此数据并执行变异时,我导航回到screen1.js
。我希望screen1.js
中的数据进行相应的更新。
我已经尝试了几种类似的解决方案(如docs中的建议):
const {data} = useQuery(MY_QUERY, {fetchPolicy: "network-only", pollInterval: 500})
但这不起作用。我无法将查询设为订阅,因为查询调用了Hasura的自定义操作,并且我相信它们仅支持查询和变异。
我认为一种解决方案是在导航到screen1.js
时重新渲染它,但我不知道这是否是最佳解决方案。
答案 0 :(得分:0)
尝试将此作为默认选项:
const defaultOptions = {
watchQuery: {
fetchPolicy: 'no-cache',
errorPolicy: 'ignore'
},
query: {
fetchPolicy: 'no-cache',
errorPolicy: 'all'
}
}
应根据您的设置方式,将其用于类似这样的事情:
this.client = new ApolloClient({
link: concat(authMiddleware, link),
cache: new InMemoryCache(),
defaultOptions
})