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

reactjs React.js

2020-03-13

我正在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需要分号类,我不太了解。

第1527篇《类扩展了React.Component在React中不能使用getInitialState》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
小胖Itachi 2020.03.13

如果我们使用类字段,则以下工作正常。

state = {
      name: '',
      password: ''
}

可以代替

constructor(props, context) {
    super(props, context);

    this.state = {
      name: '',
      password: ''
    };
  };
十三前端Harry 2020.03.13

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

对于ES6类,getInitialState已弃用,而在构造函数中声明初始状态对象:

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

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android