更新阿波罗客户端2.0中的缓存

时间:2018-12-10 10:26:35

标签: caching apollo apollo-client

我有以下查询:

 <Mutation
      mutation={UPDATE_CUSTOMER}
      update={(
        cache,
        {
          data: {
            updateCustomer: { customer }
          }
        }
      ) => {
        const { page } = queryString.parse(search);
        const parsePageInt = parseInt(page, 10);
        const {
          customers: { customers }
        } = cache.readQuery({
          query: FETCH_CUSTOMERS,
          variables: { pageNumber: parsePageInt }
        });
         const updatedCustomersArray = customers.map(customerFromCache => {
           return customerFromCache.customerID === customer.customerID
             ? customer
             : customerFromCache;
         });
   cache.writeQuery({
       query: FETCH_CUSTOMERS,
      variables: { pageNumber: parsePageInt },
       data: { customers: { customers: updatedCustomersArray } }
     });

  />

执行Mutation时,我正在尝试更新缓存。执行操作 cache.writeQuery(...)时会出现问题。

{{1}}

缓存已更新,但出现以下错误: enter image description here

在项目开始时,我添加了InMemoryCache对象属性 addTypename:false 。这是一个错误的决定,因为我前段时间决定将查询与接口和内联片段一起使用,这需要架构中的 __ typename 属性。

这是阿波罗缓存中缓存查询的形状 enter image description here

有什么简单的方法可以解决吗?

0 个答案:

没有答案