【发布时间】:2023-03-24 18:00:02
【问题描述】:
我有一个简单的反应应用程序,我必须在其中使用 useContext。 H2>
(顺便说一句,我使用 vite + react)
这是我的 Context.jsx 代码
import React, {useContext} from 'react';
const emailContext = React.createContext();
export const useEmail = () => useContext(emailContext);
export const emailProvider = ({children}) => {
const currentUser = "None";
const value = {
currentUser
}
return(
<emailContext.Provider value={value}>
{children}
</emailContext.Provider>
)
}
这是我如何使用上下文
import "./styles.css";
import { useEmail } from "./Context/Context"
export default function App() {
const {currentUser} = useEmail();
return (
<div className="App">
<h1>Hello CodeSandbox {currentUser}</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
我知道为什么我在这段代码中遇到错误。
我遇到的一些错误
- _useEmail 未定义(最新)
- currentUser 用户未定义
我尝试过的事情
- 用一些初始值初始化 createContext(只有初始值可见)。
- 在 App.js 中使用 useContext() 直接(useContext(emailContext) 返回未定义)
- 用
<children/>代替了{children}。 - 在 emailProvider 中使用 useState 而不是 const currentUser
即使我使用 typescript 也会遇到同样的问题。
但以上都没有帮助。
【问题讨论】:
-
我已经用
context api阅读了一些关于全局状态管理的实现,你可以看看。提供有关全局状态的详细信息。这是链接Similar implementation
标签: javascript reactjs typescript use-context