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

Привет. Надо обновлять state (useState) после того как поменялась переменная

ref (useRef).
Пробовала useEffect но почему-то не работает. Помогите кто знает в чем причина?
Благодарю!

36 ответов

41 просмотр

Опиши кейс. Что хранишь в рефе?

Ref не для того, чтоб на него подписываться

Почему должен вызываться useEffect если изменить ref?

Alena- Автор вопроса

Тебе искусственно надо дёрнуть ререндер. Значение в ref мутабельно

Alena- Автор вопроса

Как без рендера вызовется useEffect?

Alena- Автор вопроса
IceBerg
Как без рендера вызовется useEffect?

При изменении того что в массиве

IceBerg
Как без рендера вызовется useEffect?

Не рендер вызывает юз эффект. А вызов функции компонента

Alena
При изменении того что в массиве

Почитай как работает useEffecf и useRef Вангую, прямо в доке написано уточнение то шо ссылка не меняется у useRef

Alena
При изменении того что в массиве

Что при изменении того что в массиве?

IceBerg
Да не в этом же дело

Я как понял, она записывает value = useRef() в массив зависимостей useEffecf и не понимает почему при изменении value не происходит обновлений. Верно жеж?

Alena- Автор вопроса
IceBerg
Что при изменении того что в массиве?

useEffect(() => {•••}, [изменение того что в этом массиве])

Alena
useEffect(() => {•••}, [изменение того что в этом ...

Вот ты вызвала useEffect этой строкой, почему при изменении рефа эта строка должна снова отработать?

Sunrise
Я как понял, она записывает value = useRef() в мас...

Да, и иммутабельность рефа ни при чём

Sunrise
Я как понял, она записывает value = useRef() в мас...

Ну и ни только value там в зависимостях, а и current, который переопределяется

Alena
Поясните

Я вас не так понял. Простите

Alena- Автор вопроса
Alena
Поясните

Но обсервабл это наблюдатель

Alena
useEffect так работает

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

Alena- Автор вопроса
IceBerg
Я не спрашивал как он работает, почему он должен в...

так как он следит за изменениями того что в массиве

Не следит, а при вызове сравнивает значения в массиве с прошлыми

IceBerg
Не следит, а при вызове сравнивает значения в масс...

Душно, она же ведь тоже права. Следит за тем чтобы сравнить

useEffect(() => {...}, [5]) За чем useEffect здесь следит?

Erzhik Erjik
Душно, она же ведь тоже права. Следит за тем чтобы...

Та в том и дело, что не следит вообще, а просто сравнивает при вызове

Erzhik Erjik
Душно, она же ведь тоже права. Следит за тем чтобы...

Душно? По факту выкладывает как правильно.

IceBerg
useEffect(() => {...}, [5]) За чем useEffect здесь...

К этому можно добавить что 5 получилось путем каких то вычислений и передали переменную в которой в этот раз 5

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта