【问题标题】:Is it correct to define the state as a variable (or property) inside a class?将状态定义为类中的变量(或属性)是否正确?
【发布时间】:2020-01-24 08:29:33
【问题描述】:

我在一个开源项目中发现了这样一个类

class ComponentName extends React.Component{
  state = {
    somestate here
  };

  render() {
    return <RenderedComponent value={somethings}>{some other things}</RenderedComponent>;
  }
}

这样定义state是否正确?不应该在类的构造函数中定义吗?

【问题讨论】:

标签: javascript reactjs ecmascript-6


【解决方案1】:

它是 ES6 的新语法。在没有构造函数的情况下定义状态和在构造函数内部定义状态是 100% 相等的。所以随意写这种方式。要了解更多信息,请查看他们的文档。

【讨论】:

    【解决方案2】:

    是的,您可以这样定义它的实验状态,其工作方式类似于构造函数状态

    • 唯一的事情是你需要定义箭头函数而不是绑定(如果使用实验状态)。

    • 如果你定义了构造函数,那么你可以在那里绑定函数

    实验状态

    state = {
    name: 'hello'
    

    }

    在构造函数中定义的状态,您可以在其中绑定函数

    constructor(props) {
    super(props);
    this.state = {
      name: ': hey'
    }
    this.handleChange = this.handleChange.bind(this);
    

    }

    【讨论】:

      【解决方案3】:

      是的,完全正确,请查看此链接:https://github.com/the-road-to-learn-react/react-alternative-class-component-syntax

      您可以通过构造函数或使用类字段声明两种方式来实现。

      【讨论】:

        【解决方案4】:

        您不必总是为每个类定义一个构造函数。因此,如果您不需要定义构造函数,则可以以这种方式使用状态。

        【讨论】:

          猜你喜欢
          • 2020-01-01
          • 2013-08-19
          • 2011-11-13
          • 2021-11-05
          • 1970-01-01
          • 1970-01-01
          • 2012-01-25
          • 1970-01-01
          • 2010-09-28
          相关资源
          最近更新 更多