Клиент Apollo 2: новый объект из мутации: обновить все кэшированные запросы, частью которых должен быть этот новый объект?

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

В отличие от ручного решения, которое требует знания того, какие запросы обновлять: 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.

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


person james.ff    schedule 30.08.2018    source источник


Ответы (1)


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

person JSEvgeny    schedule 04.09.2018