Клиент Apollo GraphQL — изменение данных из JS (React)

#graphql #apollo #react-apollo #apollo-client #apollo-server

#GraphQL #Apollo #реагировать-Apollo #Apollo-клиент #Apollo-сервер

Вопрос:

Я разрабатываю приложение для чата в реальном времени с использованием graphql, и я хочу изменить выбранные данные вместо повторной выборки — чтобы уменьшить ненужные сетевые запросы.

При первом запуске моего приложения я извлекаю список пользователей (которые не являются текущими зарегистрированными пользователями) для отображения на боковой панели приложения. Каждый пользователь содержит объект lastMessage, который представляет последнее сообщение, которое он отправил или получил.

Когда пользователь нажимает на пользователя для общения, отправляется другой запрос, чтобы получить все сообщения между пользователями.

Используя подписки, я обновляю состояние сообщений при отправке нового сообщения (либо зарегистрированным пользователем, либо другим пользователем).

Теперь я хочу обновить объект lastMessage связанного пользователя, отображаемый на боковой панели, но я не хочу повторно извлекать всех пользователей, чтобы сделать это, потому что у меня есть все обновленные данные в клиенте, которые я получил по событию подписки. Вместо этого я хочу обновить данные, запрошенные graphql, с помощью js.

Есть ли способ сделать это? Спасибо.

Комментарии:

1. Документы Apollo Cache?

Ответ №1:

В кэше Apollo есть метод ‘modify’, который вы можете использовать для настройки кэша последнего сообщения пользователя.

Документы Apollo для изменения кэша