亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

導航到沒有 react-router 的 URL

導航到沒有 react-router 的 URL

元芳怎么了 2021-06-15 17:42:16
我正在嘗試在加載應用程序時使用令牌檢查真實性,當用戶未經授權時,將他導航到登錄頁面。這個方法被插入到 Navbar 組件中,因為它在應用程序的每個頁面上,所以它會隨時被調用。我試圖將導航欄組件放在路由器中,但它不起作用。帶有路由的 App.js:      <div className="App">       <HomeNavbar history={this.props.history}/>       <Router>       <Switch>         <Route exact path="/login" component={LoginPage}/>         <Route exact path="/addEvent" component={addEvent}/>         <Route exact path="/register" component={RegisterPage}/>         <Route exact path="/members" component={MembersList}/>         <Route exact path="/event/:id" component={EventDetails}/>         <Route exact path="/events" component={EventsList}/>         <Route exact path="/user/:id" component={UserDetails}/>         <Route path="/" component={EventsList}/>       </Switch>       </Router>      </div>正如您所看到的,HomeNavbar 位于 之外,但我希望這樣,因為它顯示在每個頁面上。如何從該組件導航到另一個頁面?
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

在這種情況下,您需要使用withRouterReact Router 中的方法。這將創建一個接收所有路由器道具的高階組件。所以,而不是HomeNavbar,你會有這個:


import { withRouter } from 'react-router-dom'


// create a new home navbar with router.

const HomeNavbarWithRouter = withRouter(HomeNavbar)


// after creating this, your HomeNavbar component will receive all the router props // such as `history, match, location`


// Finally, mount the HomeNavbarWithRouter instead:


<HomeNavbarWithRouter />


查看完整回答
反對 回復 2021-06-18
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號