Bat*_*han 3 apollo vue.js nuxt.js
我正在开发 nuxt/apollo 包,但没有有关 addTypeName 属性的信息。这个属性应该在哪里设置呢?注意:所有安装都与@nuxt/apollo 有关。(作为模块等导入)
版本信息 :
"@nuxtjs/apollo": "^4.0.0-rc8",
Run Code Online (Sandbox Code Playgroud)
我在 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**
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的 Index.vue 页面是:
apollo: {
data: {
query: gql`
{
newsJson(take: 1) {
key
*GENERATES __typeName when sending request to Graphql*
}
}
`,
client: 'financial'
}
}
Run Code Online (Sandbox Code Playgroud)
我的 graphql 查询(通过网络上的 graphiql):
{
newsJson(take:1){
key
approve
}
}
Run Code Online (Sandbox Code Playgroud)
响应是:
{
"data": {
"newsJson": [
{
"key": 2071554,
"approve": false
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
当我发送请求 __typeName 时,我在 graphql Web 端崩溃了。如何防止添加__typeName属性来请求?
此致,
谢谢
它InMemoryCache采用一个可选addTypename参数,可以设置该参数false来防止这种行为。所以你可以这样做:
clientConfigs: {
default: {
...
inMemoryCacheOptions: {
addTypename: false,
},
},
}
Run Code Online (Sandbox Code Playgroud)
但是,非常不建议这样做。该__typename字段与id/_id字段一起用于生成缓存中单个节点的密钥。请参阅此处了解更多详细信息。删除__typename可能会导致应用程序出现错误和意外行为,因此不应该这样做。
| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |