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

Подскажите пожалуйста, как решить эту проблему у useEffect, когда изменение

переменной указанной в зависимостях отслеживается не всегда? Вот здесь подробно расписана эта проблема(но решение не указано) https://lukaszmakuch.pl/post/react-hooks-oops-part-3-an-effect-does-not-run-again-when-its-dependencies-change

28 ответов

12 просмотров

Юзэффект вобщем то и не отслеживает переменные в депсах, просто на каждый апдейт компонента делает шелоу компеа массива, указанного вторым параметром

Ref мутируется, этот чувак целую статью об этом выдал?

Тимофей 🛴
Ref мутируется, этот чувак целую статью об этом вы...

Результат осваивания библиотеки в обход документации

Radik-Khammatov Автор вопроса
Dmitriy Shuleshov
Юзэффект вобщем то и не отслеживает переменные в д...

Ну т.е. получается так, что у меня примерно в 9 из 10 случаев указанная в зависимостях useEffect переменная, вызывает указанную внутри неё функцию, после изменения значения этой переменной, но в какие-то случайные моменты этого может не произойти, как с этим быть?

Radik Khammatov
Ну т.е. получается так, что у меня примерно в 9 из...

Как переменная может вызывать функцию? Давай нормально объясни

Radik Khammatov
Ну т.е. получается так, что у меня примерно в 9 из...

Эффект срабатывает всегда при изменении зависимости, если ты найдешь кейс когда это не так, то это баг

Так в статье же пример с useRef. useRef как раз специально используют порой для сохранения ссылки между ререндерами

Radik-Khammatov Автор вопроса
Тимофей 🛴
Эффект срабатывает всегда при изменении зависимост...

Извиняюсь, у меня в другом месте была ошибка, которая выдавала поведение, очень похожее на то, что описано в статье, и это запутало меня еще сильнее, спасибо за ваши ответы 🙈

Тимофей 🛴
Эффект срабатывает всегда при изменении зависимост...

Если зависимость сама по себе не связана с каким либо стейтом любого уровня то не вызовет

Тимофей 🛴
Эффект срабатывает всегда при изменении зависимост...

Многие думают, что эффект сраьатывает от изменения зависимостей, типа реактивно Это прям максимально часто распространено

Volodymyr Klimov
Многие думают, что эффект сраьатывает от изменения...

и в этом по большей части реакт тима повинна

Dmitriy Shuleshov
и в этом по большей части реакт тима повинна

Ага, что у них, блин, доки нет нормальной😁

Volodymyr Klimov
Ага, что у них, блин, доки нет нормальной😁

Да не в этом даже суть, само слово неверно подобрано "dependencies"

Тимофей 🛴
Ну после рендера конечно

https://t.me/react_js/1094075 Вот правильная абстракция для восприятия но в доке ее нет...

Dmitriy Shuleshov
https://t.me/react_js/1094075 Вот правильная абст...

Странно, а почему большинство все таки поняли правильно

Dmitriy Shuleshov
https://t.me/react_js/1094075 Вот правильная абст...

Мне нравится про useEffect думать как про синхронизацию с чем-то внешним)

Тимофей 🛴
Странно, а почему большинство все таки поняли прав...

В чате каждый день вопросы, связанные с непониманием)

Тимофей 🛴
Странно, а почему большинство все таки поняли прав...

Может большинство просто в твоём окружении? Я лично очень часто встречаю такую ошибку среди новичков и тех кто не сильно старался вникнуть в концепцию

Volodymyr Klimov
Мне нравится про useEffect думать как про синхрони...

В том то и дело что для такой абстракции апи выглядит примерно так watch(effect, [deps]) И ты такой смотришь на юзэффект и думаешь вооо это оно, но не оно🌚

Тимофей 🛴
Сделай пулреквест в доку)

Даня все в боге пояснил но очень длинно...😁

Dmitriy Shuleshov
Даня все в боге пояснил но очень длинно...😁

«Что же делает useEffect? Используя этот хук, вы говорите React сделать что-то после рендера. React запомнит функцию (то есть «эффект»), которую вы передали и вызовет её после того, как внесёт все изменения в DOM.» Мне кажется достаточно однозначно

Dmitriy Shuleshov
Юзэффект вобщем то и не отслеживает переменные в д...

Хорошо, я не понял только, вот компонент отрисовался, как ему понять, когда апдейтиться?

Altairka
Хорошо, я не понял только, вот компонент отрисовал...

Тогда когда изменился его стейт или стейт одного из родителей, если не было на пути мемоизированых

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
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
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта