Eu configurei eslint
& eslint-plugin-react
.
Quando executo o ESLint, o linter retorna no-unused-vars
erros para cada componente React.
Presumo que ele não esteja reconhecendo que estou usando a sintaxe JSX ou React. Alguma ideia?
Exemplo:
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>
);
}
}
Erros de 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
Aqui está meu .eslintrc.json
arquivo:
{
"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"
]
}
}
javascript
reactjs
jsx
eslint
Don P
fonte
fonte
React
sem usar, apenas usandoComponent
, que foi importado corretamente.Header
também o erro? (Você realmente precisa importar o React, caso contrário, quando o JSX for transpilado, ele dará um erro)Respostas:
Em seu
.eslintrc.json
, emextends
, inclua o seguinte plugin:'extends': [ 'plugin:react/recommended' ]
Fonte
fonte
Para resolver este único problema sem adicionar novas regras de
react/recommended
instalaçãoeslint-plugin-react
:adicionar em
.eslintrc.js
:"plugins": ["react"]
e:
"rules": { "react/jsx-uses-react": "error", "react/jsx-uses-vars": "error" }
fonte
Como encontrei isso ao pesquisar no Google, você deve saber que esta regra simples é suficiente para evitar esta mensagem:
O
react/recommended
conjunto de regras adiciona muitas outras regras que você pode não querer.fonte
No meu caso, precisei adicionar o seu
.eslintrc.js
:'extends': [ 'plugin:react/recommended' ]
além de um ajuste específico para se livrar da importação de pré-ação:
import { h } from 'preact'
mas você pode usar este exemplo para se livrar de seus avisos específicos, como:"no-unused-vars": [ "error", { "varsIgnorePattern": "^h$" } ],
fonte
Conserto mais rápido
Para ignorar todas as variáveis TitleCase, adicione isto à sua configuração ESLint:
{ "rules": { "no-unused-vars": [ "error", { "varsIgnorePattern": "^[A-Z]" } ] ] }
Correção correta
Use eslint-plugin-react para ignorar as variáveis React.
Adicione isso à sua configuração ESLint:
{ "plugins": [ "react" ], "rules": { "react/jsx-uses-vars": "error", "react/jsx-uses-react": "error" } }
Correção sugerida
Use eslint-plugin-react para melhorar seu uso de JSX, não apenas para silenciar esse erro.
Adicione isso à sua configuração ESLint:
{ "extends": [ "plugin:react/recommended" ] }
Se você usar o XO , consulte eslint-config-xo-react .
fonte
Se você criar o projeto por meio da CLI create-react-app, poderá
npm run eject
e editar o campo package.json "eslintConfig", como este:`"eslintConfig": { "extends": "react-app", "rules": { "eqeqeq": "off", "no-unused-vars": "off", } },`
a eslint será fechada
fonte