使用 useContext() 时将 运行 保留为标准 React 挂钩错误。使用这个钩子的好模式是什么?

Keep running into standard React hook errors when using useContext(). What is a good pattern in using this hook?

我正在尝试使用 useContext() 钩子,但将 运行 保留在标准 React 钩子错误中(例如,Hooks 只能在函数内调用,可能有重复的 React 版本等)。认为这是我本地计算机上的配置问题,我尝试并成功地在这个沙箱中复制了这个问题:https://codesandbox.io/s/contextapi-hooks-wjvuk?file=/src/components/pages/Home.js

我学习了很多教程并阅读了此处的一些帖子,但是 none 成功的解决方案为我指明了解决问题的方向。

我相信我在我的实现中遗漏了一个小细节,所以任何 help/advice,无论是实践的还是理论的,以巩固我对 React 和 Context-API 的理解,我们将不胜感激。

干杯!

您只能在组件内部使用挂钩。目前,您的 Home 函数未在任何地方用作组件,因此您不能在其中使用 useContext。 尝试替换此行:

<Route exact path="/" render={Home} />

与:

<Route exact path="/"><Home /></Route>