超类构造函数调用应该在构造函数体中

7
我使用ES6编写React类构造函数,但在WebStorm9编辑器中出现了红色高亮错误。 以下是代码的一部分:
class AssetSelectDialog extends React.Component {
static propTypes = {
    data: React.PropTypes.any,
    pageState: React.PropTypes.string,
    pageStatus: React.PropTypes.string,
    handleCancel: React.PropTypes.func,
    handleSave: React.PropTypes.func
};

constructor(props) {
    super(props);
    this.PAGE_STATUS = {
        SHOW: 'SHOW',
        SELECT: 'SELECT'
    };
    this.state = {
        data: this.props.data || {},
        pageState: this.props.pageState || CONST.STATUS.EDIT,
        pageStatus: this.props.pageStatus || this.PAGE_STATUS.SHOW 
    };
}

super(props);中发现了错误,错误信息为Superclass constructor invocation should be in constructor body。代码在babel中可以正常运行,我该如何修复它?


1
也许这可以帮助 https://twitter.com/webstormide/status/565439940755218432 - Henrik Andersson
1
你的代码在多个地方没有正确终止。不要在类声明中使用分号,并使用适当的缩进来查看你错过了什么。 - Amit
@Amit 在类定义中使用分号有什么问题吗? - CodingIntrigue
非常感谢。这段代码只是该类的一部分。问题在于WebStorm工具出现了错误,但已在10.4版本中修复。 - maxwell
@RGraham:类定义不包含语句。这与在对象字面量中使用分号或省略逗号一样错误。 - Bergi
@Bergi 我还没有检查属性赋值的提案,但至少在 Babel 中它不会抛出错误。所以它可能是多余的,但肯定不同于将一个放在对象字面量中,因为那样会抛出语法错误。 - CodingIntrigue
1个回答

9

这是WebStorm中的一个错误,WEB-14601在WebStorm 10.0.4中已经修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接