重定向后反应状态为空

时间:2020-01-03 22:19:42

标签: reactjs react-router

我对React和使用重定向非常陌生,我正在尝试使用React-Router实现一个简单的两页应用程序。我想知道重定向到组件后如何初始化组件的状态。例如,我具有以下从另一个页面重定向到的View组件:

class View extends Component {
  constructor(props) {
    super(props);
    this.setState({
      name: 'NAME'
    });
  }

  render() {
    return (
      <div>
       <p>Hello {this.state ? this.state.name : 'null'}<p>
      </div>
      );
  }
}

上述组件从另一个页面呈现null重定向到<Redirect to="/View">后呈现。我这里可能缺少一些细微的东西,但是如何正确初始化状态?

1 个答案:

答案 0 :(得分:0)

您不应在构造函数中调用setState()-组件在其生命周期中尚未安装。例如,请参见this SO answer

相反:

  constructor(props) {
    super(props);
    this.state = {
      name: 'NAME'
    };
  }