1つの使用リターンからジャンプしてレンダリングする必要があります<=へのリダイレクトを「/」/> this.props.history.replaceは(「/」)せずに、そこにレンダリングする必要がありますので、リターン
コールバックイベント内でクリックしてthis.props.history.replace
内部1.admin.js
< スクリプト> レンダリング(){ // 保存されたユーザーを読んで、ログインページに直接ジャンプが存在しない場合 のconstユーザー= JSON.parse(localStorage.getItem(' user_key ' )|| ' {} ' ) IF (!ユーザー._id){ // this.props.history.replace( '/ログイン')//イベントコールバック使用 リターン < へリダイレクト= " /ログイン" / > } </ スクリプト>
内部2.login.js
< スクリプト> IF (res.code === ' 0000 ' ){ // ページ管理へジャンプ constのユーザー= res.data localStorage.setItem(' user_key ' 、JSON.stringify(ユーザ))
//storageUtils.saveUser(user)改良版
この.props.history.replace(' / ' ) message.success(' ログイン成功' ) } 他{ Message.Errorアン(res.msg)// バックエンドで返さres.msg情報 } (レンダリング){ constのユーザー= JSON.parse(localStorage.getItem(' user_key ' )|| ' {} ' )
//改良版:CONSTユーザー= storageUtils.getUser()
もし(user._id){ リターン < リダイレクトする= " / " / > } </ スクリプト>
ユーザーを削除する方法として、ユーザーがユーザーを読み込み、保存するために、パッケージ
< スクリプト> CONST USER_KEY = ' user_key ' エクスポートデフォルト{ // 返回ユーザ对象、如果没有返回{} のgetUser(){ リターンJSON.parse(localStorage.getItem(USER_KEY)|| ' {} ' ) }、 // 保存ユーザ saveUser(ユーザ){ localStorage.setItem(USER_KEY、JSON.stringify(ユーザ)) } // 删除ユーザ はremoveUser(){ localStorage.removeItem(USER_KEY) } } </ スクリプト>