169 похожих чатов

Объясните плиз как работает инициализация состояния (useState(initial)). Есть компонент, который

принимает пропс a и b, он имеет стэйт c, который устанавливается так const [c, setC] = useState(a + b), далее я жму в UI кнопку, которая меняет пропсы a и b, но с при этом не обновляется. Проблему решил через useEffect: useEffect(() => { setC(a + b) }, [a, b]). Нормальная ли это ситуация?

3 ответов

6 просмотров

вставли свои 5 копеек! тебе не кажется что стейт создан быть независимым стейт зависит от внешних данных (сервер) и пользователя все!!!!!!!! не откаких пропсов он завсеть не должен))) 1.Вынеси глобальное состояние за пределы приложение и обращайся кнему от любой точки вычисляя новые пропсы! Либо если состояние внутренне то тут только классы хуки здесь не помогут))) Но это плохой шаблон((((

Ситуация нормальная. Дело в том, что (грубо говоря) реализация useState разная в разные моменты времени — на mount и на update. Подробнее тут. https://overreacted.io/a-complete-guide-to-useeffect/ upd: решение с useEffect верное

Можно через useMemo ещё наверное

Похожие вопросы

Обсуждают сегодня

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
А что ты вообще делаешь ?
Yesgoter
13
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
На работе пишем распределенное приложение, у которого сотни, если не тысячи настроек. Конфиги написаны на xml, расположены на разных хостах и должны быть согласованы друг с др...
Aleksandr Druzhinin
5
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
18
Всем привет 🙂 Какая-то непонятная проблема у меня с видео, раньше такого не было. Загружаю видео с гугл диска именно в видео mp4 и меняю ссылку как положено вот она: https://d...
Ксюша|Верстка на Тильде|Дизайн 🦥
6
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
А какие у этого try практические плюсы перед eval?
Oleg Volkov
41
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Карта сайта