Я установил eslint
& eslint-plugin-react
.
Когда я запускаю ESLint, линтер возвращает no-unused-vars
ошибки для каждого компонента React.
Я предполагаю, что он не осознает, что я использую синтаксис 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"
]
}
}
javascript
reactjs
jsx
eslint
Дон П
источник
источник
React
когда не используете его, вы просто используетеComponent
, который правильно импортирован.Header
быть ошибка? (На самом деле вам нужно импортировать React, иначе, когда JSX будет транспилирован, он выдаст ошибку)Ответы:
В вашем
.eslintrc.json
разделеextends
включите следующий плагин:'extends': [ 'plugin:react/recommended' ]
Источник
источник
Чтобы решить эту единственную проблему без добавления новых правил из
react/recommended
установкиeslint-plugin-react
:добавить
.eslintrc.js
:"plugins": ["react"]
а также:
"rules": { "react/jsx-uses-react": "error", "react/jsx-uses-vars": "error" }
источник
Поскольку я обнаружил это во время поиска в Google, вы должны знать, что этого простого правила достаточно, чтобы предотвратить появление этого сообщения:
В
react/recommended
набор правил добавлено много других правил, которые могут вам не понадобиться.источник
В моем случае мне нужно было добавить в ваш
.eslintrc.js
:'extends': [ 'plugin:react/recommended' ]
плюс специальная настройка, чтобы избавиться от предварительного импорта:
import { h } from 'preact'
но вы можете использовать этот пример, чтобы избавиться от ваших конкретных предупреждений, например:"no-unused-vars": [ "error", { "varsIgnorePattern": "^h$" } ],
источник
Самое быстрое исправление
Чтобы игнорировать все переменные TitleCase, добавьте это в конфигурацию ESLint:
{ "rules": { "no-unused-vars": [ "error", { "varsIgnorePattern": "^[A-Z]" } ] ] }
Правильное исправление
Используйте eslint-plugin-response, чтобы игнорировать переменные React.
Добавьте это в свою конфигурацию ESLint:
{ "plugins": [ "react" ], "rules": { "react/jsx-uses-vars": "error", "react/jsx-uses-react": "error" } }
Предлагаемое исправление
Используйте eslint-plugin-response, чтобы улучшить использование JSX, а не только для того, чтобы заглушить эту ошибку.
Добавьте это в свою конфигурацию ESLint:
{ "extends": [ "plugin:react/recommended" ] }
Если вы используете XO , обратитесь к eslint-config-xo-react .
источник
Если вы создаете проект с помощью интерфейса командной строки create-react-app, вы можете
npm run eject
отредактировать поле "eslintConfig" package.json, например:`"eslintConfig": { "extends": "react-app", "rules": { "eqeqeq": "off", "no-unused-vars": "off", } },`
интернет-магазин будет закрыт
источник