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

Подскажите, как можно убрать лишний рендер, у меня имеется: <Template header={header}> {myComponent} </Template> myComponent

обернуто в memo и возвращает функцию с версткой (нет в зависимости header)

и имеется селектор который получает инфу о header
как только приходит новый header, он перерендывает ВСЁ.

Почему? Можно ли MyComponent не перерендывать (там же новых пропсов нету)

17 ответов

14 просмотров

myComponent — это выражение, которое ты вычисляешь на каждом рендере

https://overreacted.io/react-as-a-ui-runtime/#inversion-of-control

Юрий- Автор вопроса
Ivan 🧑‍🚀
myComponent — это выражение, которое ты вычисляешь...

понял и что тогда делать? Как правильно поступить? У меня внутри темплейта { View1 || View2} Каждый раз вызывается, каждый раз перерендывается, как это оптимизировать?

Юрий- Автор вопроса
Ivan 🧑‍🚀
<MyComponent /> вместо {myComponent}

View 1 это const function = isView && <MyComponent/> View 2 это const function2 = switchCase на 10 разных компонентов

Юрий- Автор вопроса
Ivan 🧑‍🚀
<MyComponent /> вместо {myComponent}

поэтому хз как тут заменить, идей вообще нет

Юрий- Автор вопроса
Ivan 🧑‍🚀
<MyComponent /> вместо {myComponent}

я переписал свои 2 функции на компонент обертку, в котором эти 2 функции внутри и заюзал как <Component /> но этот <Component /> все равно рендерится когда меняться селектор

Юрий- Автор вопроса
Ivan 🧑‍🚀
Ну так ты его мемоизируй :)

методы внутри него или сам компонент?

Юрий- Автор вопроса
Ivan 🧑‍🚀
Ну так ты его мемоизируй :)

и я внутри него методы в memo обернул, и даже его записал как const componentWrapper = React.memo(Component)

Юрий
и я внутри него методы в memo обернул, и даже его ...

Всё правильно обернул. Только с большой буквы. И вот этот враппед рендерь через <... />

Юрий- Автор вопроса
Ivan 🧑‍🚀
Всё правильно обернул. Только с большой буквы. И в...

Так и делаю, все равно перерендыр выполняется

Юрий- Автор вопроса
Ivan 🧑‍🚀
Значит codesandbox.io

слишком много зависимостей, не реально выложить

Юрий- Автор вопроса
Ivan 🧑‍🚀
Значит codesandbox.io

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

Юрий
слишком много зависимостей, не реально выложить

Выделение куска кода, который воспроизводит некорректное поведение — хороший навык, пригодится. Ну и обычно сам находишь ошибку в процессе

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта