0

我有一个问题,在文档中找不到。例如我有一个列表

带有 ID 的产品1,2,3,4

我还有另一个列表,带有 ids 的类别1,2,3,4

示例查询

{
  products {
     id
     name
     categories {
     id
     name
     }
  }
}

我们可以看到它们在 apollo 中都有相同的 id 但不同的 typename。缓存数据时会产生任何问题吗?当 Apollo 使用 id 规范化我们的数据时,我们将不胜感激。

4

1 回答 1

2

Apollo 使用__typenameid(或_id)字段进行规范化,因此具有相同 id 的 Product 和 Category 通常不会导致任何问题。

客户端通常会__typename为查询中的每个选择集附加 ——因此您不必__typename自己实际添加该字段。

传递给 InMemoryCache 的配置对象包含一个addTypename属性,默认为true. 如果将此设置为 false,则__typename不会添加该字段,并且在这种情况下您将看到缓存问题,除非您具有通用唯一 ID。

于 2019-03-26T18:26:17.753 回答