Sub*_*egi 59 three.js reactjs tailwind-css
我面临着
未捕获的类型错误:无法解构“React2.useContext(...)”的属性“basename”,因为它为空。
在Link代码的组件中:
import React, { useEffect, useState } from 'react';
import { Link } from 'react-router-dom';
import { styles } from '../styles';
import { navLinks } from '../constansts';
import { logo, menu, close } from '../assets';
const Navbar = () => {
const [active, setActive] = useState('');
return (
<nav className={`${styles.paddingX} w-full flex items-center py-5 fixed top-0 z-20 bg-primary`}>
<div className="w-full flex justify-between items-center max-w-7x1 max-auto">
<Link
to="/"
className="flex items-center gap-2"
onClick={() => {
setActive('');
window.scrollTo(0, 0);
}}
>
<img alt="logo" />
</Link>
</div>
</nav>
);
};
export default Navbar;
Run Code Online (Sandbox Code Playgroud)
我该如何修复它?
Art*_*hur 141
您正在使用Linkfrom react-router-dom,它正在调用useContext。它正在寻找的上下文是由 提供的BrowserRouter,但您的应用程序不是由 BrowserRouter. 你的index.js:
import { BrowserRouter } from 'react-router-dom'
render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById('root')
)
Run Code Online (Sandbox Code Playgroud)
小智 6
确保在App.js中正确使用路由并将导航栏组件放入 BrowserRouter 中。作为示例,我们假设您的app.js类似于:
function App() {
return (
<div className="App">
<Router>
<Routes>
<Route path="/" element={<HomePage/>}/>
<Route path="/x" element={<x/>}/>
<Route path="/y" element={<y/>}/>
<Route path="/z" element={<z/>}/>
<Route path="/*" element={<NotFound/>}/>
</Routes>
</Router>
</div>);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
然后:
function App() {
return (
<div className="App">
<Router>
<Routes>
<NavBar/>
<Route path="/" element={<HomePage/>}/>
<Route path="/x" element={<x/>}/>
<Route path="/y" element={<y/>}/>
<Route path="/z" element={<z/>}/>
<Route path="/*" element={<NotFound/>}/>
</Routes>
</Router>
</div>);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
请务必添加导入!
在包装路由之前,我将 BrowserRouter 导入为 Router,因为它可以帮助我理解代码。这就是为什么它是这样声明的。
| 归档时间: |
|
| 查看次数: |
130095 次 |
| 最近记录: |