React Hooks 和 useContext:这是一个好的模式吗?

React Hooks & useContext: Is This a Good Pattern?

我正在研究 useContext React Hooks。我想将包含应用程序状态的单个对象传递给上下文消费者,例如:

<AppContextProvider.Provider value={AppState}>
  {props.children}
</AppContextProvider.Provider>

当然,我需要传递一些 getterssetters 来使子组件能够更新应用程序状态。

此模式是否是一种有效的方法 - 是否有更好的模式?

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),
    }
}

为什么不使用 reducer 并传递单个调度函数?

我相信它还建议您传递状态和分派是单独的上下文,否则调用分派将导致上下文中的所有内容重新呈现。

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

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