在构造函数或 componentWillMount 中设置初始react组件状态?

IT技术 reactjs
2021-04-18 01:57:38

在 React 组件中,是否更喜欢在构造函数()或 componentWillMount()中设置初始状态?

export default class MyComponent extends React.Component{
  constructor(props){
    super(props);
    this.setState({key: value});
  }
}

或者

export default class MyComponent extends React.Component{
  componentWillMount(props){
    this.setState({key: value});
  }
}
1个回答

使用 ES6 类时最好在构造函数中,但不要使用setStateAPI,而是这样做:

export default class MyComponent extends React.Component{
  constructor(props){
    super(props);
    this.state = { key: value };
  }
}

此外,如果您有可用的类属性(babel stage 1),那么您可以执行以下操作:

export default class MyComponent extends React.Component{
  state = { key: value };

  render() {
    ....
  }
}
为什么在这种情况下可以?
2021-05-30 01:57:38
抱歉,要清楚,在设置初始状态时不要使用它。:) 其他地方是的。
2021-06-09 01:57:38
另外为什么使用构造函数比使用 componentWillMount 更好?
2021-06-10 01:57:38
React 团队直接建议在使用 ES6 类时在构造函数中设置状态。在这里阅读我假设有一些我们不知道的内部结构需要在任何生命周期事件被触发之前设置初始状态。
2021-06-11 01:57:38
因为我记得阅读永远不要直接改变 this.state : facebook.github.io/react/docs/component-api.html#setstate
2021-06-12 01:57:38