Size: a a a

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

2020 July 04

MM

Michael Maximjuk in React — русскоговорящее сообщество
Александр Бакиматов
лучше показать код
код выше)
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Michael Maximjuk
вот этот setTitle который срабатывает сразу а setOpen только за вторым кликом. Может это происходит из-за конфликта стэйтов, внутреннего и внешнего?!
сделай setOpen(isOpen => !isOpen) ну и на будущее всегда когда тебе нужно использовать текущее состояние стейта - нужно делать так, иначе наткнешься что то что ты передаешь не имеет то значение которое ты ожидаешь
источник

MM

Michael Maximjuk in React — русскоговорящее сообщество
Александр Бакиматов
сделай setOpen(isOpen => !isOpen) ну и на будущее всегда когда тебе нужно использовать текущее состояние стейта - нужно делать так, иначе наткнешься что то что ты передаешь не имеет то значение которое ты ожидаешь
не работает(
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Michael Maximjuk
не работает(
не, это типа в принципе совет был)
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
а конкретно по твоему случаю  - хз, если выльешь в песочницу, можно посмотреть. в час ночи третий глаз уже на зарядке стоит
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
)
источник

ip

ivan posokhin in React — русскоговорящее сообщество
Michael Maximjuk
вот этот setTitle который срабатывает сразу а setOpen только за вторым кликом. Может это происходит из-за конфликта стэйтов, внутреннего и внешнего?!
По моему у тебя срабатывает и в первый раз setOpen, но потом срабатывает setTitle  и родитель перерисовывает этот компонент заново инициализируя open и setOpen. А во второй раз срабатывает потому что в этом случае setTitle устанавливает то же значение оно не меняется и ререндеринга не происходит
источник

MM

Michael Maximjuk in React — русскоговорящее сообщество
ну я раньше не встречал такого) если конечно это не обьекты)
источник

MM

Michael Maximjuk in React — русскоговорящее сообщество
ivan posokhin
По моему у тебя срабатывает и в первый раз setOpen, но потом срабатывает setTitle  и родитель перерисовывает этот компонент заново инициализируя open и setOpen. А во второй раз срабатывает потому что в этом случае setTitle устанавливает то же значение оно не меняется и ререндеринга не происходит
именно так и работает) а как избежать перерендера?
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
ivan posokhin
По моему у тебя срабатывает и в первый раз setOpen, но потом срабатывает setTitle  и родитель перерисовывает этот компонент заново инициализируя open и setOpen. А во второй раз срабатывает потому что в этом случае setTitle устанавливает то же значение оно не меняется и ререндеринга не происходит
шошо? с каких пор ререндер реинициализирует стейт?
источник

О

Олег in React — русскоговорящее сообщество
Александр Бакиматов
реакт просто библиотека для отрисовки ui, фундаментальных книг по таким вещам которые не устаревают - не бывает. в доке в принципе все есть. всякие практики - с опытом и из статей.
Спасибо!
источник

ip

ivan posokhin in React — русскоговорящее сообщество
Александр Бакиматов
шошо? с каких пор ререндер реинициализирует стейт?
Так родитель перерисует этот дочерний компонент
источник

MM

Michael Maximjuk in React — русскоговорящее сообщество
Александр Бакиматов
шошо? с каких пор ререндер реинициализирует стейт?
все верно Иван говорит) родитель перерисовывает чайлда
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
иииии?
источник

MM

Michael Maximjuk in React — русскоговорящее сообщество
и возвращает знчение false
источник

ip

ivan posokhin in React — русскоговорящее сообщество
Уничтожает и вставляет заново ноду
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
то есть хотите сказать что если у вас происходи ререндер - то стейт сбрасывается в инишиал?
источник

G

GetMad in React — русскоговорящее сообщество
Александр Бакиматов
то есть хотите сказать что если у вас происходи ререндер - то стейт сбрасывается в инишиал?
Ну да. Это ж реакт
источник

MM

Michael Maximjuk in React — русскоговорящее сообщество
Александр Бакиматов
то есть хотите сказать что если у вас происходи ререндер - то стейт сбрасывается в инишиал?
да
источник

G

GetMad in React — русскоговорящее сообщество
)))0
источник