useContext return 取消定义
useContext return undefine
大家好,我正在为 usecontext 而苦苦挣扎 return 未定义问题,请帮忙
我尝试了堆栈上的每一个解决方案,但没有任何效果请需要帮助
这是我的代码
监视列表上下文文件
import React, { createContext } from "react";
import Moviedata from "../utility/movieData";
export const WatchlistContext = createContext();
function WatchlistProvider({ children }) {
const [Watch, setWatch] = React.useState(Moviedata);
return (
<WatchlistContext.Provider value={{ Watch }}>
{children}
</WatchlistContext.Provider>
);
}
export default WatchlistProvider;
index.js 文件
import MoviesProvider from "./context/Movies";
import WatchlistProvider from "./context/Watchlists";
ReactDOM.render(
<MoviesProvider>
<WatchlistProvider>
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>
</WatchlistProvider>
</MoviesProvider>,
document.getElementById("root"));
Watchlist.js 文件
import { WatchlistContext } from "../context/Watchlists";
function Watchlist() {
const classes = useStyle();
const { Watch } = useContext(WatchlistContext);
console.log(Watch);
return (
<div>
<HomeNavbar
search={
<div className={classes.search}>
<div className={classes.searchIcon}>
<SearchIcon />
</div>
<InputBase
placeholder="Search…"
classes={{
root: classes.inputRoot,
input: classes.inputInput,
}}
inputProps={{ "aria-label": "search" }}
/>
</div>
}
/>
</div>
)}
export default Watchlist;
[][1][1]: https://i.stack.imgur.com/ZbDib.png
尝试在你的上下文文件中创建它时给上下文一个初始值,我很确定应该可以解决问题。
如果没有,您应该在 watchlist.js 文件中添加 import {useContext} form "react"
。
大家好,我正在为 usecontext 而苦苦挣扎 return 未定义问题,请帮忙 我尝试了堆栈上的每一个解决方案,但没有任何效果请需要帮助
这是我的代码
监视列表上下文文件
import React, { createContext } from "react";
import Moviedata from "../utility/movieData";
export const WatchlistContext = createContext();
function WatchlistProvider({ children }) {
const [Watch, setWatch] = React.useState(Moviedata);
return (
<WatchlistContext.Provider value={{ Watch }}>
{children}
</WatchlistContext.Provider>
);
}
export default WatchlistProvider;
index.js 文件
import MoviesProvider from "./context/Movies";
import WatchlistProvider from "./context/Watchlists";
ReactDOM.render(
<MoviesProvider>
<WatchlistProvider>
<ThemeProvider theme={theme}>
<App />
</ThemeProvider>
</WatchlistProvider>
</MoviesProvider>,
document.getElementById("root"));
Watchlist.js 文件
import { WatchlistContext } from "../context/Watchlists";
function Watchlist() {
const classes = useStyle();
const { Watch } = useContext(WatchlistContext);
console.log(Watch);
return (
<div>
<HomeNavbar
search={
<div className={classes.search}>
<div className={classes.searchIcon}>
<SearchIcon />
</div>
<InputBase
placeholder="Search…"
classes={{
root: classes.inputRoot,
input: classes.inputInput,
}}
inputProps={{ "aria-label": "search" }}
/>
</div>
}
/>
</div>
)}
export default Watchlist;
[][1][1]: https://i.stack.imgur.com/ZbDib.png
尝试在你的上下文文件中创建它时给上下文一个初始值,我很确定应该可以解决问题。
如果没有,您应该在 watchlist.js 文件中添加 import {useContext} form "react"
。