我想知道我是否可以使用箭头函数编写纯ES6类。这是我的课程示例:
class PhoneNumber {
constructor(phoneNumber) {
this.phoneNumber = phoneNumber;
}
testEmpty() {
if (!this.phoneNumber) return true;
return false;
}
}
似乎我不能将其写为:
class PhoneNumber {
constructor = phoneNumber => {
this.phoneNumber = phoneNumber;
}
testEmpty = () => {
if (!this.phoneNumber) return true;
return false;
}
}
尽管如此,我可以在React上写类似的东西:
class PhoneNumber extends React.Component {
state = {
phoneNumber: this.props.phoneNumber;
}
testEmpty = () {
if (!this.state.phoneNumber) return true;
return false;
}
}
为什么React组件,即使是一个类,也接受ES6箭头函数,而我的纯类却不接受?
答案 0 :(得分:2)
构造函数根本不能是箭头函数。 您可以在react中创建箭头方法,因为react在幕后使用了针对类字段的建议。您可以使用babel提案插件将它们添加到您的项目中。 使用箭头类方法的好处是在这种方法中 this 的值将在回调中引用类本身。因此,您可以在事件监听器中使用箭头方法,而无需使用包装函数或bind()。