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

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

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

36 ответов

24 просмотра

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

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

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

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

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

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

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

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

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

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

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

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

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

Sunrise
Почитай как работает useEffecf и useRef Вангую, пр...

И ещё прочитай про реф колбеки Тоже важно

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

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

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

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

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

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

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

Мы не меняем ничего. А обсервабл делаем

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

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

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

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

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

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

Alena
Поясните

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А чем вам питонисты не угодили?😂
.
79
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Есть предложения, как подобное можно упростить?
Hemul GM
12
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
Карта сайта