使用ES6

时间:2016-03-18 16:39:34

标签: reactjs ecmascript-6 webstorm babeljs

我一直在研究React网络应用程序,最近从WebStorm 10升级到2016.1。到目前为止,我对新版本感到满意,除了一些检查员的怪癖,如果我能帮助它,我宁愿不在场,其中一个我无法找到解决方案。

我正在使用ES6类来声明我的所有React组件,并且在我设置状态的每个实例中,WebStorm都在.state方法上抛出一个未解决的变量警告。

有问题的代码段:

import React from "react";
import autobind from 'autobind-decorator';

@autobind
class List extends React.Component{
  constructor() {
    super();

    this.state = {
      name: "List",
      items: {},
      history: {},
      suggestions: [],
      highlightIndex: 0,
      suggestionsHover: false,
      autoDelete: true,
      delta: 0,
      mouse: 0,
      isPressed: false,
      lastPressed: 0,
      order: []
    }
  }

警告:

Unresolved variable state

应该注意的是,WebStorm 10中没有出现此警告,并且警告会转移到设置状态的其他实例(即.setState)。还应该注意的是,我使用babelify将我的代码转换为ES5以及autobind-decorator,如图所示。

任何帮助或见解将不胜感激。谢谢,如果我需要提供任何其他信息,请告诉我。

3 个答案:

答案 0 :(得分:11)

尝试使用TypeScript定义文件设置代码帮助。我的意思不是将您的代码转换为TypeScript。看看JetBrains关于这个主题的博客文章:

https://blog.jetbrains.com/webstorm/2015/10/working-with-reactjs-in-webstorm-coding-assistance/

基本上,请进入WebStorm的首选项。向下:Languages & Frameworks > JavaScript > Libraries点击Download按钮。搜索React(以及该列表中可能有帮助的其他内容),然后点击Download & Install。这应该有助于删除一些丑陋的警告。

现在,如果只有WebStorm能够将PropTypes应用于props对象,我们就能够获得那些"未解析的变量/函数/方法"警告消失。

答案 1 :(得分:3)

这是一个已知问题。

该错误已在2016.2版本中修复(请参阅:https://youtrack.jetbrains.com/issue/WEB-20884)。

此更新一旦发布,this.statethis.props和其他当前未解决的变量就会得到解决。

答案 2 :(得分:-1)

您需要在构造函数中添加道具

constructor(props) {
super(props);