React Hooks & useContext: Это хороший шаблон? - PullRequest
0 голосов
/ 24 февраля 2019

Я учусь useContext с React Hooks.Я хотел бы передать единственный объект, содержащий состояние приложения, контекстным потребителям, например:

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

0 голосов
/ 24 февраля 2019

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

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

https://reactjs.org/docs/hooks-faq.html#how-to-avoid-passing-callbacks-down

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

...