Объект данных, предоставляемый из ловушки useQuery, отличается от объекта ответа в запросе xhr запросов. Данные, изменяемые, указываются. Запрос работает в Graphql-Playground с теми же переменными.
Запрос в вопросе:
query GetThing($parentId: String!, $otherId: ID!) {
getParent(parentId: $parentId, otherId: $otherId) {
id
containers{
id
objects{
id
things{
id
done ----- This boolean is being mutated between getting the response object and returning data object
}
}
}
}
}
Я убедился, что у меня нет кода, изменяющего объект данных, я консоль регистрирую его сразу послезавершение запроса.
Я ожидаю, что объект данных будет соответствовать объекту ответа, но это не так. Где-то вдоль линии apollo-client последовательно изменяет это логическое значение непоследовательным образом. Я имею в виду, что это происходит последовательно, казалось бы, случайным образом. Изменяет ли клиент apollo данные каким-либо образом?
РЕДАКТИРОВАТЬ: я определил, что это происходит из-за того, как клиент apollo обрабатывает много-много отношений. Клиент Apollo будет синхронизировать многие отношения, что, хотя и поддерживает актуальность кэша, не позволяет добавлять дополнительные данные из отношения многие ко многим. У меня есть много ко многим отношениям пользователей и задач, с дополнительными данными, если пользователь пометил задачу как выполненную.