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 ответ

Решение

Почему бы не использовать редуктор и передать одну функцию диспетчеризации?

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

https://reactjs.org/docs/hooks-faq.html

https://reactjs.org/docs/hooks-reference.html

Другие вопросы по тегам