在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ react-router的一個問題

react-router的一個問題

把路由器封裝為一個組件在用戶登錄的時候?qū)懸粋€登錄狀態(tài)到本地 如果是true正常返回一個route如果是false的話跳轉(zhuǎn)到登錄頁.為的是 避免用戶在沒有登錄的情況下直接跳轉(zhuǎn)到內(nèi)頁去


需求描述清楚

步驟1.組件封裝

const AuthRoute = (props) => {
    const isLogin = sessionStorage.getItem('isLogin') === 'true';
    if(isLogin){
      return <Route {...props} />
    }else{
      return <Redirect to={
        {
          pathname: '/login',
          state: {
            from: props.location,
          }
        }
      } />
    } 
  };

步驟2.組件調(diào)用

 <AuthRoute exact path='/' component={Home} />
 <AuthRoute path='/System'component={System} />

問題:
會報錯
Warning: You tried to redirect to the same route you're currently on: "/login"

路由器為BrowserRouter 請問在不用Switch的情況下我這個組件怎么改才會把這個警告去掉

回答
編輯回答
赱丅呿

翻譯一下報錯內(nèi)容,你大概就知道解決方案啦。如果當前路由就是等同于你將要跳轉(zhuǎn)的路由時候,你應該攔截掉或者刷新,不要繼續(xù)跳轉(zhuǎn),獲取到你將要跳轉(zhuǎn)的路由地址的方法就是在props里面,你多console幾遍就知道了。

2017年2月19日 08:00