我的代码目前是这样的,我正在尝试使用 react-router-dom
添加这个返回上一页的按钮,但我收到以下错误,并且我网站上的所有组件都消失了。
错误:
useNavigate() may be used only in the context of a component
我的代码:
function App() {
const navigate = useNavigate();
return (
<BrowserRouter>
<div>
<button onClick={() => navigate(-1)}>go back</button>
<Nav/>
<Routes>
<Route exact path="/" element={<Home/>}/>
<Route exact path="/home" element={<Home/>}/>
<Route exact path="/upcoming/:user" element={<Upcoming/>}/>
<Route exact path="/record/:user" element={<Record/>}/>
<Route path="*" element={<NotFound/>}/>
</Routes>
</div>
</BrowserRouter>
);
}
这是我在控制台中遇到的错误:
原文由 kid 发布,翻译遵循 CC BY-SA 4.0 许可协议
此错误引发 useNavigate 。 useInRouterContext 将检查组件(使用
useNavigate
挂钩)是否是<Router>
的后代。这是解释为什么不能在
useNavigate
Router
useLocation
之外使用的源代码:你的环境是浏览器,所以你需要使用
BrowserRouter
。BrowserRouter
基于Router
构建。重构为:
App.jsx
:index.jsx
: