Контекст реакции — как определить, какой компонент вызывает контекст?

#javascript #reactjs

#javascript #reactjs

Вопрос:

 const tableContext = React.createContext();
const tableContextProvider = ({children}) => {
   const [isTableOne, setTableOne] = useState(false);
   const [isTableTwo, setTableTwo] = useState(false);

   useEffect(() => {
       setTableValues();
   }, []);

   function setTableValue() {
       setTableOne(result.IS_TABLE_ONE); // true
       setTableTwo(result.IS_TABLE_TWO); // false
   }

   return (<TableContext.Provider value={{isTableOne, isTableTwo}}>{children}
                     {isMetaTable? <LoadingComponent /> : null}
           </TableContext.Provider>);
    };
 

Если контекст из MetaTable, я хотел бы показать экран загрузки

  {isMetaTable? <LoadingComponent /> : null}
 

Как я могу передать значение в контекст, чтобы установить isMetaTable значение true ?

 <Switch>
    <Route exact path='/route1'><TableContextProvider><MetaTable /></TableContextProvider></Route>
    <Route exact path='/route2'><TableContextProvider><Table2 /></TableContextProvider></Route>
    <Route exact path='/route3'><TableContextProvider><Table3 /></TableContextProvider></Route>
    <Redirect from='/' to='/route1' />
</Switch>
 

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

1. Создайте другую переменную состояния и передайте ее метод «set» поставщику контекста — <TableContext.Provider value={{isTableOne, isTableTwo, setIsMetaTable}}>