首页 > 解决方案 > 如何在反应中更新导航栏

问题描述

我正在开发反应项目,我的导航栏有一个登录按钮

在 Navigation.js 中,我检查用户是否登录

const authenticated = user != null;

并决定显示登录或注销

{authenticated ? (
        <LogoutButton logout={logout} />
      ) : (
          <Link to="/login">
            <button>Login</button>
          </Link>

        )}

但问题是登录后,导航栏没有更新为注销。我怎么解决这个问题?

标签: reactjsreact-router

解决方案


在您的导航类中

constructor(props) {
    super(props);
    this.state = {
        authenticated : null
    };
};

componentDidMount() {
    // Call this function here or anywhere like user login event
    this.setState({authenticated : user != null});
}

推荐阅读