【发布时间】:2019-01-12 02:31:09
【问题描述】:
我已经设置了 eslint 和 eslint-plugin-react。
当我运行 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>
);
}
}
Linter 错误:
/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"
]
}
}
【问题讨论】:
-
你在导入
React而不使用它,你只是在使用Component,它是正确导入的。 -
这是有道理的——但为什么
Header也会出现错误? (其实你需要导入 React,否则 JSX 被转译的时候会报错) -
现在不应该发生这种情况。你的 eslint 版本是什么? github.com/eslint/eslint/issues/1905
标签: javascript reactjs jsx eslint