我开始使用ESlint,和 当我在React组件中创建类似的方法时:
getWholeQUantityProducts(obj) {
return Object.keys(obj)
.reduce((sum, key) => sum + parseFloat(obj[key]), 0);
}
它警告我 "If a class method does not use this, it can safely be made a static function"
。
然后我将它设置为静态并将其放在构造函数之前:
static getWholeQUantityProducts(obj) {
return Object.keys(obj)
.reduce((sum, key) => sum + parseFloat(obj[key]), 0);
}
现在在我的组件中调用此方法,我写this.constructor.methodName
。
我还没有看到任何人在反应教程中推荐或使用这些内容。
那么我应该关闭这个eslint规则吗?如果不包含 this
,则编写静态方法。
答案 0 :(得分:0)
ESLint规则是创作者创作的最佳实践。在这种情况下,它看起来更像是一个实用程序方法而不依赖于类,因此将它作为静态方法导出到实用程序类中是有意义的。
但是用this.constructor.methodName
来称呼它是很奇怪的。例如。应该看起来像这样
export class Utils {
public static getWholeQUantityProducts(obj) {
return Object.keys(obj)
.reduce((sum, key) => sum + parseFloat(obj[key]), 0);
}
}
你可以用Utils.getWholeQUantityProducts(obj)
来称呼它。