CreateContext 挂钩不允许呈现任何其他组件
CreateContext hook is not allowing any other component to be rendered
使用 (createContext) 不会渲染其他组件。请检查我的代码。
如果我不使用 Context,其他组件工作正常,但在使用 Context 时,不会显示单个组件。这是有关我的代码的详细信息。我试过删除上下文,没有它也能正常工作,但我会在某些组件中需要上下文,我无法删除上下文。
App.js 组件- -
import "./App.css";
import Nav from "./Nav";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import Students from "./Students";
import Mentors from "./Mentors";
import Home from "./Home";
import Student from "./Student";
import Mentor from "./Mentor";
//import { StudentsProvider } from "./StudentsContext";
import { MentorsProvider } from "./MentorsContext";
function App() {
return (
<div className="App">
<Router>
{/* <StudentsProvider> */}
<MentorsProvider>
<Nav />
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/students" component={Students} />
<Route path="/students/:id" component={Student} />
<Route exact path="/mentors" component={Mentors} />
<Route path="/mentors/:id" component={Mentor} />
</Switch>
{/* </StudentsProvider> */}
</MentorsProvider>
</Router>
</div>
);
}
export default App;
This is MentorsContext.js --
import { useState, createContext, useEffect } from "react";
export const MentorsContext = createContext();
export const MentorsProvider = (props) => {
const [mentors, setMentors] = useState([]);
useEffect(() => {
const getMentors = async () => {
try {
const res = await fetch("http://localhost:3001/mentors");
const data = await res.json();
//console.log(data);
setMentors(data);
} catch (err) {
console.log(err);
}
getMentors();
};
}, []);
return (
<MentorsContext.Provider value={[mentors, setMentors]}>
{props.childern}
</MentorsContext.Provider>
);
};
应该是children
而不是childern
<MentorsContext.Provider value={[mentors, setMentors]}>
{props.children}
</MentorsContext.Provider>
使用 (createContext) 不会渲染其他组件。请检查我的代码。 如果我不使用 Context,其他组件工作正常,但在使用 Context 时,不会显示单个组件。这是有关我的代码的详细信息。我试过删除上下文,没有它也能正常工作,但我会在某些组件中需要上下文,我无法删除上下文。
App.js 组件- -
import "./App.css";
import Nav from "./Nav";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import Students from "./Students";
import Mentors from "./Mentors";
import Home from "./Home";
import Student from "./Student";
import Mentor from "./Mentor";
//import { StudentsProvider } from "./StudentsContext";
import { MentorsProvider } from "./MentorsContext";
function App() {
return (
<div className="App">
<Router>
{/* <StudentsProvider> */}
<MentorsProvider>
<Nav />
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/students" component={Students} />
<Route path="/students/:id" component={Student} />
<Route exact path="/mentors" component={Mentors} />
<Route path="/mentors/:id" component={Mentor} />
</Switch>
{/* </StudentsProvider> */}
</MentorsProvider>
</Router>
</div>
);
}
export default App;
This is MentorsContext.js --
import { useState, createContext, useEffect } from "react";
export const MentorsContext = createContext();
export const MentorsProvider = (props) => {
const [mentors, setMentors] = useState([]);
useEffect(() => {
const getMentors = async () => {
try {
const res = await fetch("http://localhost:3001/mentors");
const data = await res.json();
//console.log(data);
setMentors(data);
} catch (err) {
console.log(err);
}
getMentors();
};
}, []);
return (
<MentorsContext.Provider value={[mentors, setMentors]}>
{props.childern}
</MentorsContext.Provider>
);
};
应该是children
而不是childern
<MentorsContext.Provider value={[mentors, setMentors]}>
{props.children}
</MentorsContext.Provider>