Apollo Client 2: Новый объект от Mutation: Обновить все кэшированные запросы, частью которых должен быть этот новый объект? - PullRequest
0 голосов
/ 30 августа 2018

Для мутаций, создающих новый объект, возможно ли автоматически обновлять все кэшированные запросы, частью которых должен быть этот новый объект (в виде списка / отдельной формы)?

В отличие от ручного решения, которое требует знания о том, какие запросы обновлять: https://www.apollographql.com/docs/react/essentials/mutations.html#update https://www.apollographql.com/docs/react/features/optimistic-ui.html#optimistic-advanced

У меня есть ощущение, что это может быть достигнуто в будущей версии Apollo, которая рассмотрит этот вариант использования, но, возможно, я ошибаюсь, и это можно сделать сегодня.

Пожалуйста, не стесняйтесь предлагать различные идеи / сценарии / мысли по реализации, какие данные должны присутствовать в клиенте, чтобы определить, какие запросы должен обновлять Apollo, или если это вообще возможно автоматизировать.

Пример:

  • Схема: TodoList, Todo
  • Действие: Создать новый Todo в списке TodoList
  • Результат: Todo автоматически добавляется в запросы TodoList, которые извлекают все дочерние объекты Todo

Большое спасибо,

1 Ответ

0 голосов
/ 04 сентября 2018

Я не уверен, является ли это лучшей практикой или нет, но один из способов добиться этого - просто изменить ваш ответ на мутацию на сервере Apollo. Я имею в виду, что вместо созданного нового TODO вы можете вернуть весь обновленный список, и если все поля (__typename и т. Д.) Будут соответствовать списку задач, который хранится в кэше, он будет обновляться автоматически

...