nat*_*e75 7 javascript graphql apollo-client
我们的 GraphQL 服务器使用包含对象数组的数据响应查询,每个对象id
对于不同的键共享相同和不同的值。例如,我们可能有一个如下所示的数组:
[
{ id: 123, name: 'foo', type: 'bar', cost: 5 },
{ id: 123, name: 'foo', type: 'bar', cost: 6 },
{ id: 123, name: 'foo', type: 'bar', cost: 7 },
{ id: 123, name: 'foo', type: 'bar', cost: 8 }
]
Run Code Online (Sandbox Code Playgroud)
我们可以在“网络”选项卡中看到服务器的响应中包含正确的数据。然而,当它通过 Apollo 客户端模块处理时,数组已经转换成如下所示:
[
{ id: 123, name: 'foo', type: 'bar', cost: 5 },
{ id: 123, name: 'foo', type: 'bar', cost: 5 },
{ id: 123, name: 'foo', type: 'bar', cost: 5 },
{ id: 123, name: 'foo', type: 'bar', cost: 5 }
]
Run Code Online (Sandbox Code Playgroud)
本质上,我们看到的是,如果数组中的所有对象共享相同的值,那么id
数组中的所有对象都会成为数组中第一个对象的副本。
这是 Apollo 客户端的预期行为吗?我们认为这可能与不正确的缓存有关,但我们也想知道 Apollo Client 是否假设具有相同属性的后续数组成员id
是同一个对象。
归档时间: |
|
查看次数: |
2541 次 |
最近记录: |