React Hooks & useContext: Это хороший шаблон?
Я учусь useContext
с реактивными крючками. Я хотел бы передать единственный объект, содержащий состояние приложения, контекстным потребителям, например:
<AppContextProvider.Provider value={AppState}>
{props.children}
</AppContextProvider.Provider>
Конечно, мне нужно будет пройти getters
а также setters
включить дочерние компоненты для обновления состояния приложения.
Является ли этот шаблон эффективным подходом - есть ли лучший шаблон?
const AppContext = React.createContext();
function AppContextProvider(props) {
const AppState = {
aVideoCallIsLive: [get, set] = useState(false),
channelName: [get, set] = useState(null),
localVideoStream: [get, set] = useState(null),
selectedBottomNavIndex: [get, set] = useState(-1),
loginDialogIsOpen: [get, set] = useState(false),
}
}
1 ответ
Решение
Почему бы не использовать редуктор и передать одну функцию диспетчеризации?
Я полагаю, также рекомендуется передать состояние, а диспетчеризация - это отдельный контекст, иначе вызов диспетчеризации вызовет повторное рендеринг всего внутри контекста.