javascript - 为什么方法作为箭头函数在反应类中起作用,但在普通类中不起作用?
问题描述
我们可以将组件类的方法声明为箭头函数,如下所示:
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 不支持。你可以在这里看到区别。constructor
您应该为 Vanilla JS添加一些属性。
推荐阅读
- java - 运行 RestAssured 时出现 java.net.UnknownHostException
- php - 如何通过删除浏览器的默认页眉和页脚在 Chrome 中的 window.print() 中设置每个页面的页码
- android - 适用于中国 android 用户的 Flutter 应用程序
- python - 如何将DataFrame中的对象转换为字符串
- android - 将 Circleimageview 的状态保存在片段内
- java - 发布约会/预订 - CORS 政策问题
- javascript - 引导模式未在 PHP 中显示
- python - 模块 'tensorflow' 没有属性 'get_default_graph' - 我不想要任何图表
- javascript - React - 导出上下文提供程序给我错误:“元素类型无效:预期字符串 [...] 但得到:未定义”
- reactjs - 如何比较 2 个 fetch 数组以在 reactjs 中设置状态