开发者问题收集

React:TypeError:_useContext 未定义

2019-08-02
5462

我正在尝试打字稿并做出反应。我有一个功能组件(下面的代码),该功能应该用 usecontext 消耗上下文,但是它向我展示了我找不到我找不到的错误。

如果我不使用ts,并且与JSX一起使用,它可以正常工作。

编辑:屏幕插图> “ 消费者:login.tsx

160100506

非常感谢任何帮助。截至日期,反应和依赖性都是最新的。

2个回答

我在 useContext() 中使用了上下文提供程序,而不是上下文本身,我应该使用 useContext(AppContext)

由于 stackoverflow 删除了评论。

Yousof K.
2019-08-02

错误是 _useContext 未定义。该问题与它实际指代的问题不同。

您创建了一个名为 AppContext 的上下文,然后将其导出为 export const AppContextProvider = AppContext.Provider;

到目前为止,您做得都正确。

问题出在消费者部分,即 login.tsx 文件。

您正在花括号内导入名称文件,这是不正确的,因为上下文被导出为名称变量。您只需要编写

import  AppContextProvider  from "../../shared/context/AppProvider";

就是这样,当您使用 useContext 钩子调用此上下文时,您正在寻找的实际状态就会被访问,并且不会再出现任何问题。

注意:不要使用 {} 来导入命名导出。

参考: 何时应使用花括号进行 ES6 导入?

pranav mishra
2022-06-10