ReactJS组件重定向停止当前组件

时间:2017-12-21 21:07:23

标签: reactjs

所以在加载组件时,我想检查变量,如果该变量存在,我想停止加载该组件并将它们重定向回主页。我有下面的代码,但我得到一个堆栈跟踪错误,因为重定向用户的组件仍在尝试加载

class Repo extends Component {
  constructor(props) {
    super(props);

    this.state = {
      repo: {}
    };

  }

  componentWillMount() {
    if (localStorage.getItem('login'))
      this.props.history.push('/');
  }
}

思想?

2 个答案:

答案 0 :(得分:1)

如果该变量存在,您可以只渲染React Router <Redirect>组件。这些方面的东西。

render() {
  if (localStorage.getItem('login')) {
    return (
      <Redirect to={{
        pathname: '/',
        state: { from: routeProps.location }
      }}/>
    );
  } else {
    // Normal rendering here.
  }
}

答案 1 :(得分:0)

如果将逻辑移至componentDidMount,则应该有效。