【问题标题】:Where do I initialize state in React [duplicate]我在哪里初始化 React 中的状态 [重复]
【发布时间】:2026-01-18 17:05:01
【问题描述】:

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

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

或者像这样的状态属性:

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

哪一个更好?两者的优缺点是什么?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    两者都是初始化状态的正确用法。当您想使用props 构建状态时,我建议您使用构造函数,否则请使用其他模式。

    export default class Person extends PureComponent {
      constructor(props) {
        super(props);
    
        this.state = {
          name: props.name || 'User',
        }
      }
    }
    

    当初始化不需要props时

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

    【讨论】:

      【解决方案2】:

      在构造函数中初始化状态是很好的,这样每当你的组件初始化时,它就会为组件提供默认状态

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

      【讨论】:

        最近更新 更多