редакса и кладется в локальный стейт и в этом же компоненте в useeffect я делаю useselector? проблема в том что dispatch асинхронный и useState при срабатывании пустой оказывается. изначально такой паттерн работы со стейтом верный или нет? у меня сомнения
Мидлвейр бы туда для редакса
диспач синхронный. асинхронное растекание пропов скорей всего ты делаешь чет не так. опиши подробней
Неверный
https://www.npmjs.com/package/redux-localstorage-simple типа вот
в редаксе есть объект со свойством. и у меня в компоненте локальный стейт этого свойства для переключателя. условно "type-1" "type-2". и изначально локальный стейт пустой. а я хочу чтобы там был "type-1" чтобы в переключателе он был выбран при загрузке страницы
ну так юзай напрямую useSelector, не нужен тебе useState локальный а в хендлерах вызывай диспач
или тебе надо чтоб до нажатия условной кнопки submit - в редаксе ничего не менялось?
там прикол в том что у меня локальный стейт ведь только за UI отвечает. у меня в редаксе что то типа [{platform:"type-1", ...}, {platform:"type-2",...}]. То есть как я пойму что выбрано в данный момент? Redux можно было бы менять напрямую если бы у меня в объекте было что-то типа {platform: "type-2", selected: false...}. Хотя возможно я так и сделаю
Инициализация usestate из localstorage?
чет сомневаюсь. кажется можно без доп. зависимостей как-то решить
а в initialState в редаксе установить сразу дефолт значение?
так и сделал так)
В этом кейсе без локального стейта не обойтись? По идее это антипаттерн, ну а как по другому?
ну не то чтобы антипаттерн. не всё надо в редакс пихать. формы вон пихали в редакс и обломались. теперь не пихают инициализируешь локальный стейт из редакса, манипуляции с локальным проводишь и отправляешь обратно в редакс
а как занести в локальный стейт если данные диспачатся не сразу?
отображай компонент, когда будут данные
А если тебе надо будет сбросить данные формы из редакса то тут без useEffect не обойтись
не ну чтоб сбросить - переинициализируй
К примеру если тебе из родителя надо сбросить дочернюю форму то ты через useEffect локальный стейт перезаписал ?
а ну не, это так не делается. форма сбрасывается изнутри.
Смотри у тебя есть форма фильтра, и на одном уровне добавления форма и таблица и тебе надо после добавления сбросить фильтр, то тут как?
ну пусть форма после (успешного) сабмита сама себя сбрасывает я так с формиком делаю
Нет я имею ввиду другое. Есть форма фильтра таблицы и на одном уровне форма добавления элемента в таблицу. И надо сбрасывать форму фильтра, после сабмита формы добавления элемента
аа. да, тут тяжелей. тогда да useEffect
Это и напрягает )) у меня был похожий кейс где был локальный стейт и данные в гет параметрах. И дублирование данных напрягало
от такого лучше избавляться. можно даже перерендерить всю форму, которую надо сбросить :)
Обсуждают сегодня