[英]@Nuxt/Apollo How can i remove “__typeName” from gql query
我正在研究 nuxt/apollo package 但没有关于 addTypeName 属性的信息。 应该在哪里设置这个属性? 注意:所有关于 @nuxt/apollo 的安装。 (作为模块等导入)
版本信息:
"@nuxtjs/apollo": "^4.0.0-rc8",
我在 nuxt.config.js 中的 apollo 配置:
apollo: {
includeNodeModules: false,
authenticationType: 'Basic',
defaultOptions: {
$query: {
loadingKey: 'loading',
fetchPolicy: 'cache-and-network'
}
},
clientConfigs: {
default: {
httpEndpoint: 'DEFAULT_GRAPHQL_ENDPOINT',
tokenName: 'apollo-token' // optional
},
financial: {
httpEndpoint: 'NEWS_GRAPHQL_ENDPOINT',
tokenName: 'apollo-token',
addTypename: false --> **Is not working**
}
}
}
我的 Index.vue 页面是:
apollo: {
data: {
query: gql`
{
newsJson(take: 1) {
key
*GENERATES __typeName when sending request to Graphql*
}
}
`,
client: 'financial'
}
}
我的 graphql 查询(通过 web 上的 graphiql):
{
newsJson(take:1){
key
approve
}
}
响应是:
{
"data": {
"newsJson": [
{
"key": 2071554,
"approve": false
}
]
}
}
当我发送请求时,__typeName 在 graphql web 方面让我崩溃。 如何防止将__typeName属性添加到请求中?
此致,
谢谢
InMemoryCache
采用可选的addTypename
参数,可以将其设置为false
以防止这种行为。 因此,您可以执行以下操作:
clientConfigs: {
default: {
...
inMemoryCacheOptions: {
addTypename: false,
},
},
}
但是,非常不建议这样做。 __typename
字段与id
/ _id
字段一起用于为缓存中的单个节点生成密钥。 有关其他详细信息,请参见此处。 删除__typename
可能会导致您的应用出现错误和意外行为,因此不应这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.