Size: a a a

React — русскоговорящее сообщество

2020 July 06

F

Frenky in React — русскоговорящее сообщество
Evgeniy Mokeev
Рендер вызывает родительский компонент или селектор каждый раз возвращает новые данные
Он каждый раз возвращает массив с одинаковым количеством чисел [0, 1, 2, 3] и каждый раз идёт перерендер да.

Я так понимаю тут где то мемоизацию нужно применить, но чёто не пойму где

Например в селекторах именно этот я по идее мемоизировал, с помощью reselect, но разницы не вижу никакой
источник

F

Frenky in React — русскоговорящее сообщество
Александр Бакиматов
в смысле нигде не используешь а код который скинул это не использование?
Я думал его конкретно надо где то использовать в зависимостях или ещё где то
источник

F

Frenky in React — русскоговорящее сообщество
Тогда только будет срабатывать
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Frenky
Я думал его конкретно надо где то использовать в зависимостях или ещё где то
да в смысле, useSelector жде от тебя функцию которая будет выбирать нужный кусок стейта из стора. ты передал щас эту функцию
источник

F

Frenky in React — русскоговорящее сообщество
Александр Бакиматов
да в смысле, useSelector жде от тебя функцию которая будет выбирать нужный кусок стейта из стора. ты передал щас эту функцию
То есть это щас у меня нормальное поведение, все как надо
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Frenky
То есть это щас у меня нормальное поведение, все как надо
15 рендеров на пустом месте - не нормально)))
источник

F

Frenky in React — русскоговорящее сообщество
Александр Бакиматов
15 рендеров на пустом месте - не нормально)))
Вообще не нормально) так а какую сторону искать решение
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
смотреть что тебе столько апдейтов делает или что ты там в селекторах намутил)
источник

F

Frenky in React — русскоговорящее сообщество
Именно этот селектор, если его закомментировать, ререндеры пропадают
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
ну мути песочницу шоб посмотреть
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
а перед этим скинь селектор
источник

EM

Evgeniy Mokeev in React — русскоговорящее сообщество
Frenky
Именно этот селектор, если его закомментировать, ререндеры пропадают
Селектор покажи
источник

F

Frenky in React — русскоговорящее сообщество
Ох, я действительно хотел, как то локализировать проблему и скинуть в песочницу рабочий код, но там много всего всеравно получается

Щас селектор скину
источник

F

Frenky in React — русскоговорящее сообщество
источник

EM

Evgeniy Mokeev in React — русскоговорящее сообщество
Наверное у тебя меняется everythingTickets, попробуй передать в createSelector state.tickets.tickets
источник

F

Frenky in React — русскоговорящее сообщество
Evgeniy Mokeev
Наверное у тебя меняется everythingTickets, попробуй передать в createSelector state.tickets.tickets
По прежнему 24 рендера)
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
стой, а сколько у тебя элементов в tickets?
источник

V

Vlad in React — русскоговорящее сообщество
ребят, можете подкинуть пример, который сложно реализуется на хуках?
источник

F

Frenky in React — русскоговорящее сообщество
Александр Бакиматов
стой, а сколько у тебя элементов в tickets?
tickets - это массив обьектов 100-500, и в этом селекторе я вначале нормализую его под свой формат и в возвращающем результате  функции createStopsList получаю на выходе количество остановок // [0, 1, 2, 3] , постоянно одинаковый массив получается прилетает и после каждого идёт ререндер
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
ну значит песочница
источник