Size: a a a

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

2020 March 30

IR

Igor Romanov in Apollo — русскоговорящее сообщество
Hi
источник
2020 April 02

AS

Artem Smirnov in Apollo — русскоговорящее сообщество
Ку, встречался кто-нибудь с ошибкой: Rendered fewer hooks than expected
В @apollo/react-hooks?

https://spectrum.chat/apollo/general/rendered-fewer-hooks-than-expected~bc76f280-7de6-4b9d-9620-44c8bf0c9c5d


Чет не могу пофиксить и не пойму куда копать
источник

PG

Pavel Grom in Apollo — русскоговорящее сообщество
Artem Smirnov
Ку, встречался кто-нибудь с ошибкой: Rendered fewer hooks than expected
В @apollo/react-hooks?

https://spectrum.chat/apollo/general/rendered-fewer-hooks-than-expected~bc76f280-7de6-4b9d-9620-44c8bf0c9c5d


Чет не могу пофиксить и не пойму куда копать
Возможно у тебя хук запроса находится в условии.
И при новом рендере условие не выполняется.
И испольдующихся хуков стало другое количество.
А реакту это очень не нравится
источник

AS

Artem Smirnov in Apollo — русскоговорящее сообщество
Pavel Grom
Возможно у тебя хук запроса находится в условии.
И при новом рендере условие не выполняется.
И испольдующихся хуков стало другое количество.
А реакту это очень не нравится
Хм, близко к этому, да
У меня хук может не выполниться, если условие не подошло, перед ним стоит return false по условию
источник

AS

Artem Smirnov in Apollo — русскоговорящее сообщество
Чувак на спектруме и ты, Pavel, помог, проблема как раз была с return false

просто указал skip в useQuery по флагу
источник
2020 April 03

KS

Kutman Soronbaev in Apollo — русскоговорящее сообщество
Всем привет
источник

AS

A S in Apollo — русскоговорящее сообщество
Пожскажите - не пойму как работает локальный кэш аполло
я записываю туда данные в дочернем компоненте (мутация)

родительский компонент данные получает, есть useQuery внутри, у нее стоит флаг fetchPolicy: 'network-only'
родительский рендерит дочерний и передает туда полученные данные из useQuery

не понимаю,  в момент когда делаю мутацию в дочернем, записывая в локальный кэш, родительский все равно перендеривается
как избежать перерендера родительского при сохранении в кэш  аполло в дочернем и можно ли в этом случае
источник

EM

Eugene M in Apollo — русскоговорящее сообщество
A S
Пожскажите - не пойму как работает локальный кэш аполло
я записываю туда данные в дочернем компоненте (мутация)

родительский компонент данные получает, есть useQuery внутри, у нее стоит флаг fetchPolicy: 'network-only'
родительский рендерит дочерний и передает туда полученные данные из useQuery

не понимаю,  в момент когда делаю мутацию в дочернем, записывая в локальный кэш, родительский все равно перендеривается
как избежать перерендера родительского при сохранении в кэш  аполло в дочернем и можно ли в этом случае
попробуй в родительском компоненте сделать вместо useQuery запрос руками, client.query
источник

EM

Eugene M in Apollo — русскоговорящее сообщество
в этом смысл аолло кеша, чтоб оно апдейтилось во всех местах где эти данные используются, не сильно понимаю твой юз-кейс и зачем тебе показывать старые данные
источник

EM

Eugene M in Apollo — русскоговорящее сообщество
В этом плане оно точно так как редакс работает, сфетчил данные записал в кеш, а из кеша в рендер. Если ты данные обновил - все обновится, тут фетч полиси не при чем
источник

AS

A S in Apollo — русскоговорящее сообщество
Eugene M
В этом плане оно точно так как редакс работает, сфетчил данные записал в кеш, а из кеша в рендер. Если ты данные обновил - все обновится, тут фетч полиси не при чем
понятно.
кейс такой
при мутации я меняю одни данные в кэше аполло

а из useQuery другие  достаю

грубо говоря в кэш аполло по id записываю name
а в родительском получаю только id и передаю в дочерний

id неизменен

но вот в квери у меня запрашивается и name тоже

а из usequery достаю только id уже
источник

EM

Eugene M in Apollo — русскоговорящее сообщество
при этом нужно, чтоб старый нейм не менялся? или я не так понял?)
источник

EM

Eugene M in Apollo — русскоговорящее сообщество
или тебя просто лишний рендер не устраивает?
источник

AS

A S in Apollo — русскоговорящее сообщество
лишний рендер не устраивает
не хочу чтобы родительский рендерился когда в дочернем записываю в локальный кэш аполло данные
источник

EM

Eugene M in Apollo — русскоговорящее сообщество
может просто кверю подправить)?
источник

AS

A S in Apollo — русскоговорящее сообщество
Eugene M
может просто кверю подправить)?
вот такую мутацию делаю в дочернем

mutation updateTask() {
 updateTask(type: $type, id: $id, text: $text) @client
}

в родительском у меня квери, там получаю

id
 __typename
 taskId
и еще данные

достаю из useQuery taskId только

причем query не делает повторно, просто перерендер родительского случается
мне это не нужно
источник

EM

Eugene M in Apollo — русскоговорящее сообщество
не знаю как там аполло оптимизации делает, по идее если нечего обновлять то и рендер не должно делать, вполне возможно что оно дергает апдейт во всех местах где юзаются эти данные без оптимизаций
источник

AS

A S in Apollo — русскоговорящее сообщество
Eugene M
не знаю как там аполло оптимизации делает, по идее если нечего обновлять то и рендер не должно делать, вполне возможно что оно дергает апдейт во всех местах где юзаются эти данные без оптимизаций
поняла. спасибо
источник
2020 April 04

OG

Olivia Gibson in Apollo — русскоговорящее сообщество
Hi
источник

M

Molly in Apollo — русскоговорящее сообщество
Hello
источник