React + Flow + eslint

时间:2017-06-12 19:44:56

标签: reactjs eslint type-safety

我试图整天都在解决这个错误。我试图将Flow添加到我的React应用程序。

我有一个声明如下的组件:

// @flow
class MyComponent extends Component {
  static defaultProps = {
    prop1: 'a',
    prop2: 'b'
  };
  handleOnClick: (value: string) => void;
  props: MyComponentProps;
}

并输入MyComponentProps

type MyComponentProps = {
  prop1: string,
  prop2: string
};

现在,Flow报告没有错误。但是当我尝试运行该应用时,出现eslint错误:

 error  'defaultProps' is not defined   no-undef
 error  'handleOnClick' is not defined  no-undef
 error  'props' is not defined          no-undef

我正在使用babel-eslinteslint-plugin-flowtype。 我已将flowtype/define-flow-type规则添加到我的.eslintrc文件中。这是我.eslintrc文件的相关部分:

{
  "parser": "babel-eslint",
  "plugins": [
    "flowtype",
    "react"
  ],
  "extends": [
    "plugin:flowtype/recommended"
  ],
  "rules": {
    "flowtype/define-flow-type": 1,
    "flowtype/use-flow-type" : 1,
    "no-undef": 2,
    "react/jsx-no-undef": 2
   }}

我错过了什么?

2 个答案:

答案 0 :(得分:1)

您是否使用import React from 'react'导入了React?

答案 1 :(得分:0)

收到错误的原因是棉绒无法检测到您的环境。

您可以按以下方式在“ .eslintrc.json”文件中进行编辑。

"env": {
    "browser": true,
    "es6": true
},

"parserOptions": {
  "ecmaVersion": 6

},

有关更多详细信息:https://eslint.org/docs/rules/no-undef