Я рефакторинг компонента React на основе класса es6, который использует обычный конструктор, а затем связывает методы и определяет состояние/атрибуты в этом конструкторе. Что-то вроде этого:
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 })
}
}
Мой вопрос в том, нужен ли мне конструктор? Или реквизит тоже автопривязывается? Я ожидал, что мне все еще понадобится конструктор и включенный super(props)
, но мой код, похоже, работает, и я запутался.
Спасибо
constructor(...args) { super(...args); }
в основном является конструктором по умолчанию. - person Felix Kling   schedule 21.06.2017constructor
, но, по общему признанию, в реакции все равно все выбрасывается в объектprops
. - person Bergi   schedule 21.06.2017