У меня тоже есть вопрос к колегам про Apollo Client :)
Мы тут недавно делали систему одну. SPA на React, стор в Apollo, база в
graph.coolИ столнкулись с серьёзными проблемами с Apollo. В чем суть, есть условные задачи, есть кейс смены их содержимого с раных мест. Мы хотим что бы это делалось оптимистик, без ожидания ответа с сервака. Если мы делаем оптимистик через Apollo, то данные меняются, но когда приходит ответ, происходит перерендер, и иногда в ответе приходят старые данные. Т.е. мы обязательно должны блокировать элемент и ждать.
Решили не ждать ответа, а держать состояние на клиенте, с апполло стором. Отпралть запрос и потом уже отдельно, если будет проблема с тем что юзеры меняют одно и то же, писать механизм синхронизации.
Но тут выяснилось странное, да у нас есть доступ к стору (через update в mutation), но только к денормализованной дате. А у аполло это пары ключ (текст запроса со вставленными переменными) и объект результаты запроса.
Т.е. мне надо было искать запрос, который вызвал мою сущность, и искать параметры с которыми он был вызван
и только зная всё этоб мог составать верный ключ для кэша и поменять "данные".
Это было жутко не удобно на самом деле.
Собственно вопрос, кто как работал напрямую со стором Apollo ? И действительно ли нет возможности,
как то менять сущности в нормализованном сторе, обращаясь к сущности хотя бы только по ID ?
Заранее спасибо.