gpt4 book ai didi

javascript - 静态方法在 ES6 类中未定义,在 reactjs 中带有装饰器

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:14 26 4
gpt4 key购买 nike

我有一个带有装饰器的 ES6 类。它有一个静态方法 foo。但是,当我尝试访问静态方法时,它是未定义的。

@withStyles(styles)
class MyComponent extends Component {
static foo(){
return "FOO";
}
render(){
var x = MyComponent.foo; // x=undefined
}
}

当我删除装饰器时,我可以访问静态方法。它不再是未定义的。

class MyComponent extends Component {
static foo(){
return "FOO";
}
render(){
var x = MyComponent.foo; // x=foo()
}
}

这个问题有解决方法吗?

最佳答案

如果你将 babeles6 一起使用,它可以像这样被转译(到 es5):

var MyComponent = (function () {
function MyComponent() {
_classCallCheck(this, _MyComponent);
}

_createClass(MyComponent, null, [{
key: 'foo',
value: function foo() {
return "FOO";
}
}]);

var _MyComponent = MyComponent;
Foo = withStyles(MyComponent) || MyComponent;
return MyComponent;
})();

所以它的问题是 withStyles(MyComponent) 将返回另一个函数,该函数显然没有您为原始类指定的静态方法。

关于javascript - 静态方法在 ES6 类中未定义,在 reactjs 中带有装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34901860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com