пойму. Делаю я mutation на sign up. С сервера приходит юзер. Apollo все это засунул в cache. А дальше то что с этим делать? Если я на другой странице его получить хочу. Вообще не могу понять. В редакс там как то все раздельно запросы запросами стэйт стэйтом а тут все в куче какой то
Это отдельная боль, link state например. Лучше спроси в чате graphql
после логина и получения юзера я делал так ставил cookies в значение logged_in=true далее устанавливал значение reactive variable с названием к примеру isLoggedInVar в значение true но перед этим ее нужно еще создать. сделать это можно вот так: // cache.ts import Cookies from 'js-cookie'; import { InMemoryCache } from '@apollo/client'; export const cache: InMemoryCache = new InMemoryCache({ typePolicies: { Query: { fields: { isLoggedIn() { return isLoggedInVar(); }, }, }, }, }); export const isLoggedInVar = cache.makeVar<boolean>(!!Cookies.get('logged_in')); далее нужно проверить на любом компоненте залогинен ли юзер или нет. очень легко: import { isLoggedInVar } from '../cache'; const isLoggedIn = useReactiveVar(isLoggedInVar); // далее рендерить в зависимости от значения чтобы получить юзера тебе нужно каждый раз делать запрос. если юзер был уже получен то apollo поймет и сам возьмет данные из кэша. может я тоже что то не так понимаю, но на своем опыте я понял что нужно делать так. и еще. менять данные из кэша можно через функцию cache.modify советую почитать об всём этом в документации, там все понятно
читал) Читать это одно а связать другое( Особенно когда первый раз все это видишь( Спасибо в любом случае)
как же я счастлив что мы ушли от аполо.... сча прочел и начал флешбеки ловить, уф
а что использую щас вместе с graphql для стэйта?
рест и мы счастливы)
Обсуждают сегодня