Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphql nuxt.js+Apollo客户端:如何禁用缓存?_Graphql_Nuxt.js_Apollo Client - Fatal编程技术网

Graphql nuxt.js+Apollo客户端:如何禁用缓存?

Graphql nuxt.js+Apollo客户端:如何禁用缓存?,graphql,nuxt.js,apollo-client,Graphql,Nuxt.js,Apollo Client,我设法得到了一个运行typescript和apollo graphql的nuxt.js+nest.js。 为了测试graphql是否有效,我使用了中的文件,并在nuxt.js页面上添加了一个按钮:单击->通过graphql加载所有CAT 无论是阅读还是写作,一切都是有效的 问题是,在通过Playway执行变异或使用其他graphql数据重新启动nest.js服务器后,nuxt.js-page会在单击时显示旧数据。我必须在浏览器中重新加载整个页面,才能让Apollo客户端获取新数据 我尝试将“无缓

我设法得到了一个运行typescript和apollo graphql的nuxt.js+nest.js。 为了测试graphql是否有效,我使用了中的文件,并在nuxt.js页面上添加了一个按钮:单击->通过graphql加载所有CAT

无论是阅读还是写作,一切都是有效的

问题是,在通过Playway执行变异或使用其他graphql数据重新启动nest.js服务器后,nuxt.js-page会在单击时显示旧数据。我必须在浏览器中重新加载整个页面,才能让Apollo客户端获取新数据

我尝试将“无缓存”标志和“仅网络”标志添加到nuxt.config.ts,但未成功:

apollo: {
defaultOptions: {
  $query: {
    loadingKey: 'loading',
    fetchPolicy: 'no-cache'
  }
},
clientConfigs: {
  default: {
    httpEndpoint: 'http://localhost:4000/graphql',
    wsEndpoint: 'ws://localhost:4000/graphql'
  }
}
}
获取猫的功能:

private getCats() {
this.$apollo.query({ query: GET_CATS_QUERY }).then((res:any) => {
  alert(JSON.stringify(res.data, null, 0));
});
}

如何禁用缓存或是否有其他解决方案?

我最近遇到了类似的问题,并通过创建一个覆盖默认客户端选项的Nuxt插件来解决该问题:

//插件/apollo-overrides.ts 从'@nuxt/types'导入{Plugin}; const:Plugin={app}=>{ //对所有查询禁用缓存 app.provider.defaultClient.defaultOptions={ 查询:{ fetchPolicy:'无缓存', }, }; }; 导出默认覆盖; 不要忘记在Nuxt的配置中注册它:

//nuxt.config.js 导出默认值{ ... 插件:[ “~/plugins/apollo覆盖”, ], ... };