reactjs 如何在react中注销后重定向到主页(在jsx中)

cl25kdpy  于 2023-10-17  发布在  React
关注(0)|答案(3)|浏览(107)
<li>
    <a href="homepage.jsx">
      <i className="fa fa-sign-out pull-right"></i> 
      Log Out
    </a>
</li>

我在homepage.jsx有主页组件,点击logout后,我需要去主页组件。
帮帮我。

pobjuy32

pobjuy321#

您正在使用react-router,因此不要使用ahref,而是使用Link,如下所示:

<li>
    <Link to="/">
        <i className="fa fa-sign-out pull-right"></i> 
        Log Out
    </Link>
</li>

由于Homepage组件是您的indexroute,因此导航到/render它。
如果你想在任何函数中动态导航,请检查以下答案:
Programmatically navigating in React-Router v4

oo7oh9g9

oo7oh9g92#

我假设你使用的是react-router v2.x.x。你可以创建一个像下面这样的组件。
您的路由还应包含您要重定向到的路由。

<Route path="/" component={App}>
       <Route path="/homepage" component={Homepage}/>
   </Route>
class Logout extends React.Component {

    static contextTypes = {
        router: React.PropTypes.object.isRequired
    };

    constructor(props, context){
        super(props, context);
        this.state = {
            error:null
        };
    }

    logOut() {
        Api.logOut().then(
            () => {
                this.context.router.replace('/homepage');
            },
            () => {
                this.setState({
                    error:'Error occured while logging out. Please try again.'
                });
            }
        );
    }

    render(){

        return (
       <li>
          <a onClick={this.logOut} >
             <i className="fa fa-sign-out pull-right"></i> 
             Log Out
          </a>
       </li>
        )
    }
}

ReactDOM.render(<Logout/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id='app'/>
rur96b6h

rur96b6h3#

在jsx组件头上单击Logout按钮时调用函数重定向。jsx下面的代码重定向到登录页面

logoutCall = () => {
    window.localStorage.clear();
};  
goLogin = () => {
   window.localStorage.clear();
   <Link to="/login"></Link>
  };    

<Link className="linkLogoutClass" to="/login" onClick={this.logoutCall}><img style={{cursor: 'pointer'}} className="logoutImageStyle " src={logout} onClick={this.goLogin}   ></img> Logout</Link>

相关问题