принимает пропс a и b, он имеет стэйт c, который устанавливается так const [c, setC] = useState(a + b), далее я жму в UI кнопку, которая меняет пропсы a и b, но с при этом не обновляется. Проблему решил через useEffect: useEffect(() => { setC(a + b) }, [a, b]). Нормальная ли это ситуация?
вставли свои 5 копеек! тебе не кажется что стейт создан быть независимым стейт зависит от внешних данных (сервер) и пользователя все!!!!!!!! не откаких пропсов он завсеть не должен))) 1.Вынеси глобальное состояние за пределы приложение и обращайся кнему от любой точки вычисляя новые пропсы! Либо если состояние внутренне то тут только классы хуки здесь не помогут))) Но это плохой шаблон((((
Ситуация нормальная. Дело в том, что (грубо говоря) реализация useState разная в разные моменты времени — на mount и на update. Подробнее тут. https://overreacted.io/a-complete-guide-to-useeffect/ upd: решение с useEffect верное
Можно через useMemo ещё наверное
Обсуждают сегодня