Size: a a a

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

2021 March 10

C

Ciemna_noc in GraphQL — русскоговорящее сообщество
тут должен работать как shouldUpdate
источник

C

Ciemna_noc in GraphQL — русскоговорящее сообщество
но апдейтит только 1 раз
источник

C

Ciemna_noc in GraphQL — русскоговорящее сообщество
вот на всякий случай еще весь виджет https://gist.github.com/Natanagar/918558a643f0983bbd9206a01217a1af
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
Ciemna_noc
но апдейтит только 1 раз
InMemoryCache используется?
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
там два косяка
- я давно не использую apollo, но если там прилетает апдейт с одинаковым __typename+id и unreadChatMessageChange, то он может это с оптимизировать, потому что данные не поменялись.
- const updatedMessages = 1 если будет всегда там при обновах, то какой смысл дергаться useEffect? там всегда вторым агрументом [1], зависимости не поменялись, поэтому ничего не происходит.

Правильно апи с правильным кодом должно работать в стиле только с useQuery. Правки через подписки должны прилетать через inMemoryCache. Руками в правильной graphql архитектуре никто такое не обновляет.

Если прям сильно хочется руками, то можно что-то вроде
useSubscription(..., { onSubscriptionData: (data) => setMyData(data...) })
делать без useEffect
источник

C

Ciemna_noc in GraphQL — русскоговорящее сообщество
спс, так работает
источник

C

Ciemna_noc in GraphQL — русскоговорящее сообщество
вообще убрала юзЭффект
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Alexey Yurchenko
нет, второй аргумент намекает, что при mount и изменениях updateSupportMessages
В рамках подписки это не порождает событие это же ивентлуп. Поэтому не работает. На гите куча таких вопросов
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
Олег Линьков
В рамках подписки это не порождает событие это же ивентлуп. Поэтому не работает. На гите куча таких вопросов
есть дока на сайте react o useEffect. Которая скажет то, что я сказал. К чему это сообщение?
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
К тому как это работает с подписками
источник
2021 March 11

y

yel' in GraphQL — русскоговорящее сообщество
народ, а посоветуйте, как правильно организовывать queries? новый проект на работе, в первый раз на gql, проект будет большим достаточно.

Сейчас квери держу в отдельных папках - файлах, потом генерирую типы и хуки через graphql-codegen ссылаясь на них. Приходится квери и хуки создавать по каждому чиху. В итоге, вангую что через месяц их будет очень много в этих файлах и будет сложно ориентироваться и организовывать это всё. Может какой-то другой подход будет лучше?
источник

y

yel' in GraphQL — русскоговорящее сообщество
хм, может переместить квери к их компонентам в папке. Так хотя бы будет понятно что к чему
источник

DB

Denis Barvitskiy in GraphQL — русскоговорящее сообщество
yel'
народ, а посоветуйте, как правильно организовывать queries? новый проект на работе, в первый раз на gql, проект будет большим достаточно.

Сейчас квери держу в отдельных папках - файлах, потом генерирую типы и хуки через graphql-codegen ссылаясь на них. Приходится квери и хуки создавать по каждому чиху. В итоге, вангую что через месяц их будет очень много в этих файлах и будет сложно ориентироваться и организовывать это всё. Может какой-то другой подход будет лучше?
Это нормально, только лучше их держать там же где используете
источник

y

yel' in GraphQL — русскоговорящее сообщество
вот да, сейчас так и сделаю
источник

y

yel' in GraphQL — русскоговорящее сообщество
ещё такой вопрос. Сейчас когда я завожу @client квери, приходится вести свою локальную схему, которая расширяет серверную, иначе graphql-codegen не хочет генерировать ничего. Без этого совсем никак не обойтись?
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
yel'
народ, а посоветуйте, как правильно организовывать queries? новый проект на работе, в первый раз на gql, проект будет большим достаточно.

Сейчас квери держу в отдельных папках - файлах, потом генерирую типы и хуки через graphql-codegen ссылаясь на них. Приходится квери и хуки создавать по каждому чиху. В итоге, вангую что через месяц их будет очень много в этих файлах и будет сложно ориентироваться и организовывать это всё. Может какой-то другой подход будет лучше?
Я использую relay way для этого.
Кверя/мутации валяются рядом с компонентом в конце файла. Так чтобы rm -r src/some/OldComponent удалял все разом и не нужно было бегать по проекту
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
Порядок работы такой. В файле компонента.

gql`
 my query
`

yarn codegen

import { useMyQuery } from 'generated/graphql'

const [res] = useMyQuery(...);
источник

y

yel' in GraphQL — русскоговорящее сообщество
угу + я хочу сейчас заставить graphql-codegen генерировать всё рядом с компонентом где квери лежит, пока хз как
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
не, он так не будет генерить. Просто import из общего generated файла.
источник

y

yel' in GraphQL — русскоговорящее сообщество
а вот эта херня разве не для этого?

https://graphql-code-generator.com/docs/presets/near-operation-file
источник