相关疑难解决方法(0)

突变后自动更新 apollo 客户端缓存,不影响现有查询

我有一个突变(UploadTransaction)返回某个名为 Transaction 的对象的特定列表。

#import "TransactionFields.gql" 
mutation UploadTransaction($files: [Upload!]!) {
  uploadFile(files: $files){
    transactions {
      ...TransactionFields
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

从后端(石墨烯)返回的交易具有 id 和 typename 字段。因此它应该自动更新缓存中的事务。在 Apollo 的 chrome 开发工具中,我可以看到新的交易:

在此处输入图片说明

我还有一个查询 GetTransactions 获取所有 Transaction 对象。

#import "TransactionFields.gql"
query GetTransactions {
  transactions {
    ...TransactionFields
  }
}
Run Code Online (Sandbox Code Playgroud)

但是我没有看到查询返回新添加的事务。在初始加载期间,Apollo 客户端加载了 292 个事务,显示在 ROOT_QUERY 下。它不断返回相同的 292 笔交易。UploadTransaction 突变在开发工具的缓存中添加“事务”类型的新对象,而不会影响开发工具中的 ROOT_QUERY 或我在代码中的查询。

在此处输入图片说明

TransactionFields.gql 是

fragment TransactionFields on Transaction {
    id
    timestamp
    description
    amount
    category {
      id
      name
    }
    currency
}
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?我是阿波罗客户端和 graphql 的新手

graphql react-apollo apollo-client

1
推荐指数
1
解决办法
2434
查看次数

标签 统计

apollo-client ×1

graphql ×1

react-apollo ×1