在useContextReact 16.8+ 中使用钩子效果很好。您可以创建一个组件、使用钩子并使用上下文值而不会出现任何问题。
我不确定的是如何将更改应用于 Context Provider 值。
1) useContext 钩子严格来说是一种使用上下文值的方法吗?
2) 是否有推荐的方法,使用 React 钩子来更新子组件的值,然后使用useContext此上下文的钩子触发任何组件的组件重新渲染?
const ThemeContext = React.createContext({
  style: 'light',
  visible: true
});
function Content() {
  const { style, visible } = React.useContext(ThemeContext);
  const handleClick = () => {
    // change the context values to
    // style: 'dark'
    // visible: false
  }
  return (
    <div>
      <p>
        The theme is <em>{style}</em> and state of visibility is 
        <em> {visible.toString()}</em>
      </p>
      <button onClick={handleClick}>Change Theme</button>
    </div>
  )
};
function App() {
  return <Content />
};
const rootElement = document.getElementById('root');
ReactDOM.render(<App />, rootElement);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.2/umd/react-dom.production.min.js"></script>