Почему GraphQL показывает первый элемент из массива как все элементы?

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

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

console.info(data)

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

Вам действительно нужно отобразить код или дополнительную информацию, это не полный вопрос.

Peter rosevelt 21.10.2018 22:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
268
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Спасибо! Ты очень помог

MIkle 21.10.2018 22:22

Другие вопросы по теме