【发布时间】:2022-10-15 13:22:32
【问题描述】:
下面是我的代码 sn-p 简化。 (使用 react-router-v5) 我的问题是如何在 logout_Handler() 中访问 BrowserRouter 的历史记录,因为我在“外部”BrowserRouter?
我已经看到了这个答案How to access history object outside <Route /> in React Router v4 ,但也有一条适用于我的案例的评论: “当我尝试使用此处所示的“withRouter”时,出现错误
您不应该在 <Router> 之外使用 <Route> 或 withRouter()
如果我尝试在 App.js 级别使用 withRouter,这正是我得到的。
// App.js function App(props) { const logout_Handler = (e) => { localStorage.removeItem("app-tokenObj"); // how to get the history from BrowserRouter to redirect?! //history.push("/login") ?? NO IDEA ?? } return ( <BrowserRouter> <nav> <h3>My Supa Dupa App</h3> <Link to="/">Home Page</Link> <Link to="/admin">Admin Page</Link> <button type="button" onClick={logout_Handler}>Logout</button> </nav> <hr/> <Switch> <Route exact path="/" component={Home} /> <Route path="/link1" component={Comp1} /> <Route path="/link2" component={Comp1} /> <Route path="/login" component={Login} /> <Route path="/signup" component={Signup} /> </Switch> </BrowserRouter> ) }
【问题讨论】:
标签: javascript reactjs react-router react-router-dom