Всем привет, только начал изучать Apollo client и столкнулся со сложностью.
есть список юзеров и есть запрос getuser , когда я кликаю на юзера, отрабатывает useQuery в который я пробрасываю userId, и мне прилетают например его имя, фамилия и статус, если я кликаю "моя страница" то в useQuery пробрасываю myId и мне прилетают мои параметры. В чем собственно вопрос:
если я меняю у себя допустим статус, как мне отобразить его на странице без рестарта страницы?
Варианты которые я пробовал:
1. просто после каждого изменения какого либо поля вызывать refetch(). Проблема в том что если инфы будет много то при изменении допустим одного статуса, нет смысла возвращать весь обьект.
2. создавать запросы например которые возвращают мою личную информацию (getStatus, getName) и тд ,если я на чужой странице то отрисовывать инфу которая возвращается по запросу getUser, а если я на своей страницы то отрисовывать то что мне возвращает мои запросы, тогда при мутации статуса я вызываю getStatus и он обновляется. Ну тут проблема в том что под каждый обьект придется писать отдельный запрос.
3. хранить инфу в useState, например:
const [newStatus, setNewStatus] = useState<string>('');
<div>{newStatus || data?.getUser.status}</div>
<Input type="text" value={newStatus} onChange={(e) => setNewStatus(e.target.value)} />
но проблема в том что если я после изменения статуса перехожу на стр к другому юзеру, а потом обратно на свою то сначала на долю секунды отображается старый статус а потом уже новый, так не пойдет)
Как решить вопрос? заранее благодарю )