问题描述
我在 VueJS 应用程序中使用 apollo-client@2.6.10
。
我有一个 user
类型(直到最近)使用了仅限本地的字段。这是本地查询和相应的变异:
query currentUserQuery {
user @client {
id
email
emailVerified
displayName
}
}
mutation setCurrentUser($id: ID!,$email: String!,$emailVerified: Boolean!,$displayName: String) {
update_current_user(
id: $id,email: $email,emailVerified: $emailVerified,displayName: $displayName
) @client
}
而且我也有一个对应的突变解析器:
resolvers = {
Mutation: {
update_current_user: (_,{ id,email,emailVerified,displayName },{ cache }) => {
const data = cache.readQuery({ query: currentUserQuery })
const user = {
__typename: 'User',id,displayName
}
data.user = user
cache.writeData({ data })
return user
}
}
到目前为止,一切都很好!
我现在想做的是从远程 api 中混合一些额外的字段。所以,我修改了查询:
query currentUserQuery {
user {
id @client
email @client
emailVerified @client
displayName @client
tier {
id
name
}
}
}
我还更新了写入 cache.writeQuery
的初始缓存对象以包含占位符 tier
数据。
但无论我如何解决这个问题,层始终是初始化的 null
值,在检查网络流量后,我可以看到没有获取远程字段。
我应该对解析器做一些不同的事情吗?我试过对本地字段使用本地查询解析器(而不是依赖从缓存中直接获取),但无济于事。
在阅读了 v2 文档并尝试了各种不同的方法后,我不知道什么在这里不起作用。
非常感谢帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)