静态方法在 ES6 类中未定义,在 reactjs 中有一个装饰器
Static method is undefined in ES6 classes with a decorator in reactjs
我有一个带有装饰器的 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()
}
}
此问题是否有解决方法?
如果你将babel
与es6
一起使用,它可以像这样翻译(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)
将返回另一个函数,该函数显然没有您为原始类指定的静态方法。
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 有可能在来自链接的警报中有一个值吗
- 是否<asp:文本框>有一个onFocusLost事件
- 让谷歌数据图表有一个24小时x轴
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- PNG图像被覆盖,但每个图像都有一个链接可以更改,每次一个-Javascript/jQuery/CSS
- JQuery是否有一个“;移动“;作用或者有没有一种更紧凑的方法来做到这一点
- Regex或javascript每X个连续单词中有一个单词
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 是否有一个javascript库来解析简单的查询
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- reactjs-redux,是否可以有一个由2个组件使用的状态
- 静态方法在 ES6 类中未定义,在 reactjs 中有一个装饰器
- ReactJS -有一个“main”;组件不拥有它的子组件
- 有了reactjs和react-router,我可以显示一个组件或者{this.props.children}吗?
- ReactJS:我有一个点击处理程序,跳过第一个道具方法