当前位置: 首页 > 面试题库 >

类扩展了React.Component在React中不能使用getInitialState

满元凯
2023-03-14
问题内容

我正在React中调试ES6语法,并编写如下组件:

export default class Loginform extends React.Component {
    getInitialState() {
        return {
          name: '',
          password: ''
        };
    };
}

但是浏览器使我警惕:

警告:getInitialState是在Loginform(普通的JavaScript类)上定义的。仅使用React.createClass创建的类支持此功能。您是要定义状态属性吗?

我可以使用传统语法来处理它,var Loginform = React.createClass但是正确的ES6语法是什么?

另一件事,我认为传统语法React.createClass是一个对象,因此其中的功能由逗号分隔,但是对于extends需要分号的类,我不太了解。


问题答案:

ES6类方法声明之间不需要分号或逗号。

对于ES6类,getInitialState不赞成使用它,而赞成在构造函数中声明初始状态对象:

export default class Loginform extends React.Component {
  constructor(props, context) {
    super(props, context);

    this.state = {
      name: '',
      password: ''
    };
  };
}


 类似资料:
  • 我在React中测试ES6语法,并编写如下组件:

  • 我对三岁还很陌生。js和javascript,所以我不能完全确定这是否是一个三。js或javascript问题,但我无法从这三个方面继承。网格类,并在屏幕上显示我的网格。由于某种原因,我不允许调用构造函数new-THREE。网格(几何、材料);在我的类的构造函数中。有人能给我指一下正确的方向吗。 我读了这篇文章:扩展Three.js类 让它工作,但我想使用一个实际的类,而不是这里提出的这个奇怪的结

  • 问题内容: 是否可以在ES6中扩展类而不用调用方法来调用父类? 编辑:这个问题可能会引起误解。 这是我们必须打电话的标准,还是我遗漏了一些东西? 例如: 当我不调用派生类时,我遇到了范围问题-> 我正在v2.3.0中使用iojs –harmony运行它 问题答案: ES2015(ES6)类的规则基本上可以归结为: 在子类构造函数中,只有在被调用之前才能使用。 ES6类构造函数必须是子类,否则必须调

  • 是否可以在ES6中扩展类而不调用方法来调用父类? 编辑:这个问题可能有误导性。这是我们必须调用的标准,还是我遗漏了什么? 例如: 当我不对派生类调用时,我遇到了一个作用域问题- 我用iojs在v2.3.0中运行这个

  • 问题内容: 我正在将React.js与TypeScript一起使用。有什么方法可以创建从其他组件继承但具有一些其他道具/状态的React组件? 我想要达到的目标是这样的: 但是,如果我把这个会失败中,我得到一个错误的打字稿(类型的参数是不能分配给类型)。我想这不是TypeScript专用的东西,而是将继承与泛型(?)混合使用的一般限制。是否有任何类型安全的解决方法? 更新 我选择的解决方案(基于D

  • 问题内容: 我之前了解到抽象类可以扩展具体类。尽管我没从JAVA设计师那里看到原因,但是没关系。我还了解到,扩展具体类的抽象类可以使重写的方法抽象。为什么?您可以提供有用的用例吗?我正在尝试学习设计模式,我不想错过任何东西。 这是示例: 问题答案: 如果我有一组想要默认实现的类(以便它们可以从扩展),并且想要强制提供自己的实现(在这种情况下使其抽象为子类会强制执行此操作。) 当然,此示例中的另一种