ref (useRef).
Пробовала useEffect но почему-то не работает. Помогите кто знает в чем причина?
Благодарю!
Опиши кейс. Что хранишь в рефе?
Ref не для того, чтоб на него подписываться
Почему должен вызываться useEffect если изменить ref?
Потому что сет Стейт?
> ref > setState 🌚
https://pastebin.com/W9QnVKYJ
Тебе искусственно надо дёрнуть ререндер. Значение в ref мутабельно
Без рендера не заработает?
Как без рендера вызовется useEffect?
При изменении того что в массиве
Не рендер вызывает юз эффект. А вызов функции компонента
Почитай как работает useEffecf и useRef Вангую, прямо в доке написано уточнение то шо ссылка не меняется у useRef
И ещё прочитай про реф колбеки Тоже важно
Что при изменении того что в массиве?
Да не в этом же дело
Я как понял, она записывает value = useRef() в массив зависимостей useEffecf и не понимает почему при изменении value не происходит обновлений. Верно жеж?
useEffect(() => {•••}, [изменение того что в этом массиве])
Мы не меняем ничего. А обсервабл делаем
Вот ты вызвала useEffect этой строкой, почему при изменении рефа эта строка должна снова отработать?
Да, и иммутабельность рефа ни при чём
Ну и ни только value там в зависимостях, а и current, который переопределяется
Я вас не так понял. Простите
useEffect так работает
Но обсервабл это наблюдатель
Я не спрашивал как он работает, почему он должен вызваться второй раз
так как он следит за изменениями того что в массиве
Не следит, а при вызове сравнивает значения в массиве с прошлыми
Душно, она же ведь тоже права. Следит за тем чтобы сравнить
useEffect(() => {...}, [5]) За чем useEffect здесь следит?
Та в том и дело, что не следит вообще, а просто сравнивает при вызове
Душно? По факту выкладывает как правильно.
К этому можно добавить что 5 получилось путем каких то вычислений и передали переменную в которой в этот раз 5
Why?
Обсуждают сегодня