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

Всем ку. Мне нужен был компонент табов который бы переключал

между табами и менялся контент, но делать это не меняя урл. При каждом изменении selectedTab в CategoryTabs, будут пересоздоваться все TabView?

20 ответов

15 просмотров

Если не ошибаюсь, то да.

fu7ur3gh057-Gho5t Автор вопроса
Egor Платонов
Если не ошибаюсь, то да.

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

key не хватает, но в любом случае ты меняешь пропсы и будешь перерисоввывать все

fu7ur3gh057-Gho5t Автор вопроса
Антон
key не хватает, но в любом случае ты меняешь пропс...

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

fu7ur3gh057 Gho5t
ну это нормальная праткика? или мне стараться дела...

Не совсем понял суть вопроса. У вас все элементы списка зависимы от стейта, значит они все и будут перерисовываться, а не только 2

fu7ur3gh057-Gho5t Автор вопроса
Egor Платонов
Не совсем понял суть вопроса. У вас все элементы с...

как сделать так чтоб пересовывались только 2? это возмжно?

fu7ur3gh057 Gho5t
а есть другой способ? или этот годится? я не давно...

если там внутри ничего безумного не планируется, то вероятно это не самая важная проблема, но в теории можно этого избежать. Способа не скажу, сам бы сидел игрался в этом деле. Если Егор более прокачан, то может стоит послушать его, ну или если время есть - поискать возможные решения - точно узнаешь что то новое

какие именно 2 нужны? По какому принципу они выбираются из всего списка?

fu7ur3gh057-Gho5t Автор вопроса
Egor Платонов
какие именно 2 нужны? По какому принципу они выбир...

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

fu7ur3gh057 Gho5t
ну клик обычный, 20 табов. Gin в активном состояни...

попробуй вместо selectedTab юзать isSelected и передовать соответственно true и false; так же не забудь про key в map, не уверен что поможет, но капать в любом случае в сторону ухода зависимости в пропсах

fu7ur3gh057 Gho5t
а есть другой способ? или этот годится? я не давно...

Функция то вызовется, но перерисуеься зависит от твоего кода + алгоритма реконсилиации

fu7ur3gh057 Gho5t
ну клик обычный, 20 табов. Gin в активном состояни...

Можно убрать selectedTab из контейнера и определить локальный стейт в самом компоненте TabView , и там его менять. Например внутри TavView создать стейт isSelected и его менять true\false в зависимости от того кликнули ли на что-то в этом компоненте или нет. Тогда у тебя не будет ре-рендерится весь список.

fu7ur3gh057-Gho5t Автор вопроса
Egor Платонов
Можно убрать selectedTab из контейнера и определит...

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

fu7ur3gh057 Gho5t
я думал об этом. но тогда старый таб который долж...

Одновременно только 1 таб может быть выбран?

fu7ur3gh057 Gho5t
я думал об этом. но тогда старый таб который долж...

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

Станислав Алимпиев
Тогда создай состояние где записывается индекс выб...

Так все равно этот индекс из контейнера нужно будет каждому ребенку передать и ничего не поменяется

fu7ur3gh057-Gho5t Автор вопроса
Станислав Алимпиев
Тогда создай состояние где записывается индекс выб...

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

fu7ur3gh057 Gho5t
я работаю с стайлед компонент, возможно заменить д...

Добавь дополнительный проп с нужными стилями в переменную компонента который будет активен при условий что индекс текущего элемента равен текущему индексу.

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

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

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...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта