首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么‘自动存储更新’在react应用程序中的客户端存储上不起作用?

为什么‘自动存储更新’在react应用程序中的客户端存储上不起作用?
EN

Stack Overflow用户
提问于 2019-06-28 07:45:13
回答 1查看 66关注 0票数 0

我使用react-apollo来管理我的react应用程序中的客户端存储,所以没有后端graphql服务器。所有与apollo相关的东西都在客户端运行。我将所有UI状态存储在ApolloClient的缓存中。我还在客户端定义了所有的解析器。

下面是新建客户端实例的代码:

代码语言:javascript
复制
new ApolloClient({
    cache,
    resolvers: {
      Mutation: {
        ...cartResolvers,
      },
    },
    typeDefs: [typeDefs]
  });

我读过这篇关于在apollo graphql变异和查询中使用ID自动更新存储的文章https://www.apollographql.com/docs/angular/features/cache-updates/#automatic-store-updates。但它似乎不起作用。我有下面的查询和突变:

代码语言:javascript
复制
export const queryCart = gql`
  {
    cart @client {
      items {
        id
        name
        price
        quantity
        image
      }
    }
  }
`;

export const addToBasket = gql`
  mutation addToBasket($sku: ID!) {
    addToBasket(id: $sku)  @client {
      items {
        id
        name
        price
        quantity
        image
      }
    }
  }
`;

我已经定义了变异addToBasket的解析器。

代码语言:javascript
复制
const addToBasket = (_parent: any, item: { id: string }, { cache }: ResolverCacheType): CartProps => {
   ...
   return {
      items: [ {id, name, price, quantity, image } ]
   }
}

我发现,即使我在解析器中返回id,缓存也不会更新,查询也不是被动的。我可以通过手动更新resolve by cache.writeData中的缓存数据来使其工作。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56799534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档