Крючок createContext не позволяет отображать какой-либо другой компонент

#reactjs #context-api

Вопрос:

использование (createContext) не является визуализацией других компонентов. Пожалуйста, проверьте мой код. Если я не использую контекст, другие компоненты работают нормально, но при использовании контекста не отображается ни один компонент. Вот подробная информация о моем коде. Я попытался удалить контекст , и он отлично работает без него, но мне понадобится контекст в некоторых компонентах, я не могу удалить контекст .

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>
  );
};


 

Ответ №1:

это children не должно быть childern

 <MentorsContext.Provider value={[mentors, setMentors]}>
      {props.children}
</MentorsContext.Provider>
 

Комментарии:

1. Боже, спасибо тебе огромное! Не могу поверить , что это была бы опечатка, я пытался около 2 часов отлаживать то, что пошло не так.

2. @Zed, пожалуйста, проголосуйте за мой ответ или отметьте как полезный, если это помогло вам