Я использую useReducer
в функциональном компоненте React, который имеет несколько диалогов.
Он отображает как:
return (
<div className="container">
{ /* All Dialogs go here */ }
<AddProfileDialog open={isOpen.ADD_PROFILE} />
<EditProfileDialog open={isOpen.EDIT_PROFILE} />
</div>
)
И я использую хуки для обработки внутренних состояний в этом компоненте.
Мой userReducer
выглядит как
const [isOpen, dispatch] = useReducer((state, action) => {
switch (action.type) {
case 'ADD_PROFILE':
return { ...state, ADD_PROFILE: true }
case 'EDIT_PROFILE':
return { ...state, EDIT_PROFILE: false }
default:
return state
}
}, [])
Прежде всего, я не уверен, что это правильный способ обработки состояния нескольких диалогов.
Кроме того, есть ли способ сбросить состояние всех других диалогов в этом компоненте в состояние по умолчанию (все false
), кроме выбранного?
Заранее спасибо.