избавиться от дублирования сетстейтов для модалок и самих модалок внутри темплейта, как можно это все изолировать?
В идеале хочется что-то вроде:
const { openDialog } = useDialog(SomeDialogComponent)
function handleClick() {
openDialog().then((result) => {
// ...
})
}
Как можно это реализовать средствами реакта и возможно ли вообще? Или может есть у кого похожая реализация на гитхабе, был бы очень признателен
Лучше не надо, это приведёт к двум параллельным деревьям, когда одно (с диалогами) слушает события из какого-то стейта, которые шлются из второго дерева. Да и это ограничение ценой двух строчек кода
Думаю, заметно, что ангулярщик хотел сделать второй ангуляр из реакта :) Так как в таком случае лучше сделать?
в эффекторе даже пример есть о модалках. Рекомендую!
Не хранить стейт модалки в реакте, сделать фабрику на эффекторе/реатоме/мобксе/etc и мапить её на реакт. Это даст и простоту и гибкость (закрыть из другого места, открыть из трёх мест, описывать модалку как угодно, подписываться на её события и пр)
Обсуждают сегодня