我有一个突变(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 的新手