我正在重构一个基于es6类的React组件,该组件使用普通构造函数,然后绑定方法,并在构造函数内定义状态/属性。就像这样:
class MySpecialComponent extends React.Component {
constructor(props) {
super(props)
this.state = { thing: true }
this.myMethod = this.myMethod.bind(this)
this.myAttribute = { amazing: false }
}
myMethod(e) {
this.setState({ thing: e.target.value })
}
}
我希望重构这段代码,以便自动绑定函数,并使用属性初始化器来管理状态和属性。现在我的代码大致如下:
class MySpecialComponent extends React.Component {
state = { thing: true }
myAttribute = { amazing: false }
myMethod = (e) => {
this.setState({ thing: e.target.value })
}
}
我的问题是,我是否仍需要构造函数?或者props也是自动绑定的?我本来期望仍需要构造函数并包含super(props)
,但我的代码似乎可以工作,我感到困惑。
谢谢
constructor(...args){super(...args);}
基本上是默认构造函数。 - Felix Kling