Ich habe eslint
& eingerichtet eslint-plugin-react
.
Wenn ich ESLint ausführe, gibt der Linter no-unused-vars
Fehler für jede React-Komponente zurück.
Ich gehe davon aus, dass nicht erkannt wird, dass ich JSX- oder React-Syntax verwende. Irgendwelche Ideen?
Beispiel:
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-Fehler:
/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
Hier ist meine .eslintrc.json
Datei:
{
"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.
quelle
quelle
React
während Sie es nicht verwenden, sondern nurComponent
, was korrekt importiert wird.Header
auch der Fehler sein? (Sie müssen React tatsächlich importieren, andernfalls wird beim Transpilieren von JSX ein Fehler ausgegeben.)Antworten:
Fügen Sie in Ihr
.eslintrc.json
, unterextends
, das folgende Plugin ein:'extends': [ 'plugin:react/recommended' ]
Quelle
quelle
Um dieses einzige Problem zu lösen, ohne neue Regeln aus der
react/recommended
Installation hinzuzufügeneslint-plugin-react
:hinzufügen
.eslintrc.js
:"plugins": ["react"]
und:
"rules": { "react/jsx-uses-react": "error", "react/jsx-uses-vars": "error" }
quelle
Da ich dies beim Googeln gefunden habe, sollten Sie wissen, dass diese einfache Regel ausreicht, um diese Meldung zu verhindern:
Der
react/recommended
Regelsatz fügt viele andere Regeln hinzu, die Sie möglicherweise nicht möchten.quelle
In meinem Fall musste ich Folgendes hinzufügen
.eslintrc.js
:'extends': [ 'plugin:react/recommended' ]
plus eine spezielle Optimierung, um den Vorimport zu entfernen:
import { h } from 'preact'
Sie können dieses Beispiel jedoch verwenden, um Ihre spezifischen Warnungen wie folgt zu entfernen :"no-unused-vars": [ "error", { "varsIgnorePattern": "^h$" } ],
quelle
Schnellste Lösung
Um alle TitleCase-Variablen zu ignorieren, fügen Sie dies Ihrer ESLint-Konfiguration hinzu:
{ "rules": { "no-unused-vars": [ "error", { "varsIgnorePattern": "^[A-Z]" } ] ] }
Richtige Korrektur
Verwenden Sie eslint-plugin-react , um React-Variablen zu ignorieren.
Fügen Sie dies Ihrer ESLint-Konfiguration hinzu:
{ "plugins": [ "react" ], "rules": { "react/jsx-uses-vars": "error", "react/jsx-uses-react": "error" } }
Vorgeschlagene Lösung
Verwenden Sie eslint-plugin-react , um Ihre JSX-Nutzung zu verbessern und nicht nur, um diesen Fehler auszuschalten .
Fügen Sie dies Ihrer ESLint-Konfiguration hinzu:
{ "extends": [ "plugin:react/recommended" ] }
Wenn Sie XO verwenden , lesen Sie eslint-config-xo-react .
quelle
Wenn Sie das Projekt über die CLI create-react-app erstellen, können Sie das
npm run eject
Feld package.json "eslintConfig" wie folgt bearbeiten:`"eslintConfig": { "extends": "react-app", "rules": { "eqeqeq": "off", "no-unused-vars": "off", } },`
Der Eslint wird geschlossen
quelle