我在哪里在React中初始化状态

时间:2019-09-02 16:21:18

标签: reactjs

我是React的新手,我正在编写一个简单的类,并试图找出在哪里初始化状态的最佳位置,应该在像这样的构造函数中进行此操作:

Class Quotes extends Component {
    constructor(props) {
        super(props);
        this.state = {
            color: 'blue'
        };
   }
...

或作为这样的州属性:

Class Quotes extends Component {
state = {
    color: 'blue'
  };
...

哪个是更好的做法?两者的优点和缺点是什么?

2 个答案:

答案 0 :(得分:3)

两者都是初始化状态的正确用法。如果您要使用props来建立状态,则建议使用构造函数,否则可以使用其他模式。

export default class Person extends PureComponent {
  constructor(props) {
    super(props);

    this.state = {
      name: props.name || 'User',
    }
  }
}

初始化不需要道具时

export default class Person extends PureComponent {
  state = {
    name: 'User',
  }
}

答案 1 :(得分:-1)

最好在构造函数中初始化状态,这样每当您的组件初始化时,它将为组件提供默认状态

Class Quotes extends Component {
    constructor(props) {
        super(props);
        this.state = {
            color: 'blue'
        };
   }
}