Я сам столкнулся с этим и нашел решение здесь .Это происходит потому, что запрос загружает данные без идентификатора (или идентификаторов), которые затем нельзя объединить с существующими данными в кэше.
Возьмите следующий пример запроса:
{
viewer {
id
fullName
groups {
id
name
}
}
}
Возвращенные данные будут сохранены в кеше с одной записью для зрителя и одной записью на группу:
User:asidnajksduih6
Group:9p8h2uidbjqshd
Group:d9a78h92lnasax
Если последующий запрос будет выглядеть так:
{
viewer {
id
fullName
groups {
name
}
}
}
Там может бытьбыть конфликтом, потому что неясно, какие группы должны обновляться в кэше (результирующий набор не будет включать идентификаторы групп).
Решение, как представляется, заключается в том, чтобы всегда использовать идентификаторы в ваших запросах, где это возможно.Это позволяет избежать проблемы слияния и повышает вероятность того, что последующие несвязанные запросы попадут в кэш.
Выше описаны причина и решение.Возможные симптомы этой проблемы включают в себя: рендеринг устаревших данных или рендеринг данных, даже если результаты находятся в вашем кэше.Как указано здесь , эти ошибки происходят тихо, однако их можно увидеть через расширение Apollo chrome на вкладке "запросы".