【发布时间】:2022-01-19 02:40:22
【问题描述】:
我继承了一个项目,该项目使用以下键字段语法设置内存缓存。没有一个例子展示了这个特殊的签名(至少我可以找到)。我在示例中看到的所有字段都使用了多个字段,并放置在关键字段属性中。这是在寻找任何嵌套的“myField”属性吗?这在 graphql 数据中是如何预期的? (Apollo 客户端 3.2)
const cache = new InMemoryCache({
typePolicies: {
Query: {
/// query info
},
},
UserData: {
fields: {
fieldA: {
merge(existing = [], incoming = []) {
return incoming;
},
},
fieldB: {
merge(existing = [], incoming = []) {
return incoming;
},
},
},
keyFields: [["myField"]], // <-- What is this looking for?
},
},
});
This leads to an invariant violation error:
Uncaught Invariant Violation: Missing field 'myField' while extracting keyFields from {"id":"462a349...... (does not contain myField)
【问题讨论】:
标签: graphql apollo-client