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

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

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

28 ответов

6 просмотров

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

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
Хорошо, я не понял только, вот компонент отрисовал...

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

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

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

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
83
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
8
Карта сайта