Почему GraphQL показывает первый элемент из массива как все элементы? - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь получить элементы из GraphQL и получить (посмотрел на вкладку «Сеть»): enter image description here

Но когда я делаю

console.log(data)

Я получаю один и тот же объект как первый много раз.Например, не [0,1,2,3,4,5,6], а [0,0,0,0,0,0].Что не так?

1 Ответ

0 голосов
/ 21 октября 2018

Ваш API возвращает null в качестве значения свойства id каждого элемента.InMemoryCache Аполлона нормализован и использует id и __typename каждого объекта хранится в качестве ключа.Поскольку идентификаторы для каждого элемента совпадают, они перезаписываются в кеше.

Самое простое решение - это исправить ваш сервер, чтобы он правильно возвращал id для каждого элемента - это исправит неожиданноекеширование поведения.Если по какой-то причине у вас нет уникального идентификатора для каждого элемента, вам необходимо реализовать собственную функцию dataIdFromObject и передать ее в конфигурацию InMemoryCache.См. здесь для получения дополнительной информации в документации.

...