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

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

history.push 與注銷圖標

history.push 與注銷圖標

慕虎7371278 2022-05-26 16:48:09
我正在使用材質 ui 圖標作為注銷按鈕。我這樣使用它:function logout(props:any){  localStorage.removeItem("token");  return(    <Redirect to="/login" />  )  //props.history.push("/login");} <ExitToAppIcon onClick={logout}></ExitToAppIcon>當我單擊該圖標時,令牌會從 localStorage 中刪除,但它不會重定向到/login頁面,如果我使用該行props.history.push("/login");而不是Redirect,頁面會崩潰并給我這個錯誤:TypeError: undefined is not an object (評估'props.history.push')應用程序.tsx:const token = localStorage.getItem('token');export default function App() {  return (    <div>      <BrowserRouter>      <Switch>      <Route exact path='/' component= {HomePage}></Route>      <Route path='/login' component= {LoginPage}></Route>      <PrivateRoute      path='/panel'      isAuthenticated={token}      component={PanelHomePage}      />      <Redirect from='*' to='/404' />      </Switch>      </BrowserRouter>    </div>  );}如何解決重定向問題?
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

我會嘗試使用useHistory文檔中的鉤子:


該useHistory鉤子使您可以訪問可用于導航的歷史實例。


如下所示:


import { useHistory } from 'react-router-dom';


const YourComponent = () => {

   let history = useHistory();


   const logout = () => {

      localStorage.removeItem('token');


      history.push('/login');

   }


   /* rest of your component code */


   return (

       { /* your other elements */ }

       <ExitToAppIcon onClick={logout}></ExitToAppIcon>

   )

}

我希望這有幫助!


查看完整回答
反對 回復 2022-05-26
  • 1 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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