簡體   English   中英

我無法在 React 的 useContext 掛鈎中訪問 Context Provider

[英]I can't access the Context Provider in useContext hook in React

我為菜單欄創建了一個上下文 API,這是我第一次使用它,而且我也在幾天前開始學習的 typescript 中使用它。

App.jsx 中的 Context Creator 和 Provider 代碼

type MenuBar = {
  menu: boolean
  setMenu: any
}

function App() {
  const MenuBarContext = React.createContext<Partial<MenuBar>>({})
  const [menu, setMenu] = useState<boolean>(false)
  return (
    <MenuBarContext.Provider value={{ menu, setMenu }}>
      <div className="h-full font-primary-400">
        <Router>
          <Navbar />
          <Routes>
            <Route path="/" element={<HomePage />} />
          </Routes>
        </Router>
      </div>
    </MenuBarContext.Provider>
  )
}

在 Navbar 組件中使用 UseContext Hook 訪問

const { menu, setMenu } = useContext(MenuBarContext)

我想在上下文 API 中傳遞 state 並在不同的組件中訪問它。 但是使用 useContext 鈎子訪問上下文 API 會給出錯誤 -

Cannot find name 'MenuBarContext'.

在單獨的文件中定義上下文並將其導入到您需要的位置。

菜單欄上下文.ts:

import React from 'react';
// other imports...
const MenuBarContext = React.createContext<Partial<MenuBar>>({});
export default MenuBarContext;

當您需要使用MenuBarContext.ProvideruseContext(MenuBarContext)時,像這樣導入它:

import MenuBarContext from './MenuBarContext';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM