Size: a a a

React — русскоговорящее сообщество

2021 January 10

AT

Alexander Tarasenko in React — русскоговорящее сообщество
И ещё куча способов фиг пойми где для каких случаев. То у них local resolver то reactive variables. Жесть какая то
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Alexander Tarasenko
Ребят объясните как с локальным состоянием graphql работать? Никак не пойму. Делаю я mutation на sign up. С сервера приходит юзер. Apollo все это засунул в cache. А дальше то что с этим делать? Если я на другой странице его получить хочу. Вообще не могу понять. В редакс там как то все раздельно запросы запросами стэйт стэйтом а тут все в куче какой то
Это отдельная боль, link state например. Лучше спроси в чате graphql
источник

AT

Alexander Tarasenko in React — русскоговорящее сообщество
да я просто не понимаю: у меня вроде оно вот оно в кэше висит а как к нему добраться не могу понять. Сохранил юзера допустим после логина. Точнее не я сохранил а graphql его сам в кэш сохранит, а как потом в другом компоненте получить этого юзера непонятно
источник

О

Олег in React — русскоговорящее сообщество
не хочу работать после каникул(((( аааа
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Олег
не хочу работать после каникул(((( аааа
кеееееееееееееек
источник
2021 January 11

SY

Sergey Yarkov in React — русскоговорящее сообщество
Alexander Tarasenko
Ребят объясните как с локальным состоянием graphql работать? Никак не пойму. Делаю я mutation на sign up. С сервера приходит юзер. Apollo все это засунул в cache. А дальше то что с этим делать? Если я на другой странице его получить хочу. Вообще не могу понять. В редакс там как то все раздельно запросы запросами стэйт стэйтом а тут все в куче какой то
после  логина и получения юзера я делал так
ставил 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
советую почитать об всём этом в документации, там все понятно
источник

AT

Alexander Tarasenko in React — русскоговорящее сообщество
Sergey Yarkov
после  логина и получения юзера я делал так
ставил 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
советую почитать об всём этом в документации, там все понятно
читал) Читать это одно а связать другое( Особенно когда первый раз все это видишь(
Спасибо в любом случае)
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Sergey Yarkov
после  логина и получения юзера я делал так
ставил 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
советую почитать об всём этом в документации, там все понятно
как же я счастлив что мы ушли от аполо....
сча прочел и начал флешбеки ловить, уф
источник

SY

Sergey Yarkov in React — русскоговорящее сообщество
Dmitriy Shuleshov
как же я счастлив что мы ушли от аполо....
сча прочел и начал флешбеки ловить, уф
а что использую щас вместе с graphql для стэйта?
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Sergey Yarkov
а что использую щас вместе с graphql для стэйта?
рест и мы счастливы)
источник

🦜

🦜 in React — русскоговорящее сообщество
Sergey Yarkov
после  логина и получения юзера я делал так
ставил 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
советую почитать об всём этом в документации, там все понятно
Ебнешься
источник

🦜

🦜 in React — русскоговорящее сообщество
Юзать gql для авторизации фетишизм
источник

АН

Андрей Негруша... in React — русскоговорящее сообщество
Всем привет, подскажите нубу пж
Когда я юзаю redux у меня в componentDidMount компонента может же быть какая-та логика?
источник

w

whyamsx in React — русскоговорящее сообщество
только самураи компонент называют компонентой☝🏻
источник

АН

Андрей Негруша... in React — русскоговорящее сообщество
whyamsx
только самураи компонент называют компонентой☝🏻
ну так компонентдидмоунт КОМПОНЕНТА (его) вроде как
источник

w

whyamsx in React — русскоговорящее сообщество
ааа точно... прости
у меня просто уже реакция на это слово резкая 😂
источник

w

whyamsx in React — русскоговорящее сообщество
хорошо что ты не самурай
источник

🦜

🦜 in React — русскоговорящее сообщество
whyamsx
только самураи компонент называют компонентой☝🏻
Я бы сказал кто...
источник

w

whyamsx in React — русскоговорящее сообщество
😂😂😂
источник

w

whyamsx in React — русскоговорящее сообщество
Андрей Негруша
Всем привет, подскажите нубу пж
Когда я юзаю redux у меня в componentDidMount компонента может же быть какая-та логика?
а почему нет.. всё может быть
источник