我们可以将组件类的方法声明为箭头函数,如下所示:
class SomeComponent extends React.Component {
someMethod = () => { // <<----- This does not throw error
// some code
}
}
..不会抛出任何错误,但下面会抛出任何错误:
class SomeNormalClass {
someMethod = () => { // <<----- This throws error
// some code
}
}
在someMethod
之后显示意外的=
。如果我将 someMethod
更改回正常函数,而不是将其声明为箭头函数,则效果很好,如下所示。为什么?
class SomeNormalClass {
function someMethod() { // <<----- This works fine
// some code
}
}
最佳答案
第一个示例中的 someMethod
是类的属性,而不是方法。 BabelJS 支持类中的属性,但原生 js 不支持。
你可以看到差异here 。您应该在 Vanilla JS 的 constructor
中添加一些属性。
关于javascript - 为什么作为箭头函数的方法在 react 类中起作用,但在普通类中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51967255/