【发布时间】:2026-02-07 19:20:06
【问题描述】:
我正在尝试使用 Context API 从我的 Header 组件访问用户值,但它给了我未定义的信息。 这是我的代码。
import React, { createContext, useEffect, useState } from "react";
export const DashboardContext = createContext();
const AppContextProvider = ({ children }) => {
const userInitialState = localStorage.getItem("user") || "";
const [user, setUser] = useState(userInitialState);
useEffect(() => {
localStorage.setItem("user", user);
}, [user]);
const values = {
user,
setUser
};
return (
<DashboardContext.Provider value={values}>
{children}
</DashboardContext.Provider>
);
};
export default AppContextProvider;
在应用组件中:
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import AppContextProvider from "./contexts/AppContext";
import Products from "./views/Products";
import Orders from "./views/Orders";
<AppContextProvider>
<Router>
<Header />
<Switch>
<Route path="/products">
<Products />
</Route>
<Route path="/orders">
<Orders/>
</Route>
</Switch>
</AppContextProvider>
标题组件:
import React, { useContext } from "react";
import AppContextProvider from "../contexts/AppContextProvider";
import "../styles/Header.css";
const Header = () => {
const context = useContext(AppContextProvider);
console.log(context); // gives me undefined
return (
<div className="row border-bottom text-white">
{user}
</div>
};
export default Header;
在 Header 组件内部,我尝试访问用户值,但它给了我未定义 我该如何解决这个问题,因为我是新手。 请帮忙。 ..................................................... ....................
【问题讨论】:
-
你能包含你的 Header 组件吗?
-
我编辑了问题,添加了 Header 组件
标签: javascript reactjs react-router react-router-dom react-context