2017-03-01 148 views
9

我设置了eslint & eslint-plugin-reactESLint与React给出了`no-unused-vars`错误

当我运行ESLint时,linter会为每个React组件返回no-unused-vars错误。

我假设它不承认我使用JSX或React语法。有任何想法吗?

实施例:

app.js

import React, { Component } from 'react'; 
import Header from './header.js'; 

export default class App extends Component { 
    render() { 
    return (
     <div> 
     <Header /> 
     {this.props.children} 
     </div> 
    ); 
    } 
} 

短绒错误:

/my_project/src/components/app.js 
    1:8 error 'React' is defined but never used no-unused-vars 
    2:8 error 'Header' is defined but never used no-unused-vars 

这是我的.eslintrc.json文件:

{ 
    "env": { 
     "browser": true, 
     "es6": true 
    }, 
    "extends": "eslint:recommended", 
    "parserOptions": { 
     "ecmaFeatures": { 
      "experimentalObjectRestSpread": true, 
      "jsx": true 
     }, 
     "sourceType": "module" 
    }, 
    "plugins": [ 
     "react" 
    ], 
    "rules": { 
     "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], 
     "indent": [ 
      "error", 
      2 
     ], 
     "linebreak-style": [ 
      "error", 
      "unix" 
     ], 
     "quotes": [ 
      "error", 
      "single" 
     ], 
     "semi": [ 
      "error", 
      "always" 
     ] 
    } 
} 
+0

你在不使用它的情况下导入'React',你只需使用'Component',它可以正确导入。 – GMaiolo

+0

这很有道理 - 但为什么'标题'也有错误? (你实际上需要导入React,否则当JSX被转译时,它会给出错误) –

+0

这不应该发生在现在。你的eslint版本是什么? https://github.com/eslint/eslint/issues/1905 – daniloprates

回答

28

在你.eslintrc.jsonextends下,包括以下插件:

'extends': [ 
    'plugin:react/recommended' 
] 

Source

10

因为我发现这虽然谷歌搜索,你应该知道,这个简单的规则就足以阻止这样的信息:

react/jsx-uses-react 

react/recommended套规则增加了many other rules你可能不想要。

7

为了解决这个问题,只有未经react/recommended添加新规则安装eslint-插件反应的

NPM我eslint-插件,反应--save

加入.eslintrc.js:

“插件”:[ “反应”]

“规则”:{ “反应/ JSX用途反应”: “错误”, “反应/ JSX用途 - 瓦尔”: “错误”}