1. ホーム
  2. javascript

[解決済み] eslint import/no-named-as-default を解決するにはどうしたらいいですか?

2022-02-11 17:04:29

質問

eslintのimport/no-named-as-defaultルールのドキュメントを見た後、私はまだ正確に何が間違っているのか混乱しています。

私は以下のようなファイル構造を持っています。

.
├── ButtonBack.css
├── ButtonBack.jsx
├── __tests__
│   └── ButtonBack.test.jsx
└── index.js

ButtonBack.jsxには、次のコードが含まれています。

import React from 'react';
import PropTypes from 'prop-types';

export default class ButtonBack extends React.Component {
  ... code removed to keep example short ...
}

__tests__/ButtonBack.test.jsx には、次のコードが含まれています。

import React from 'react';
import { shallow } from 'enzyme';
import ButtonBack from '../ButtonBack'; // <== this line has an eslint warning

... code removed to keep example short ...

問題は、私のリンターが、次のように言っていることです。 import ButtonBack from '../ButtonBack は以下のlintルールに違反します。

なぜ私のimport文がlintルールに違反するのか、その理由がわからないのです。 ButtonBack.jsxのクラス名を削除すると( export default class extends React.Component ) でも問題は解決しません。

解決方法は?

この同じ問題に遭遇しました。私が見たところ、そのルールを無効にする必要がありそうです(少なくとも私はそうしました)。

残念ながら、React + Reduxは最も一般的なシナリオです。しかし、HOCによって開発者がこのルールを停止せざるを得ないケースは他にもたくさんあります"

https://github.com/benmosher/eslint-plugin-import/issues/544

https://github.com/reactjs/react-redux/issues/119

https://github.com/18F/calc/pull/1235

.eslintrc

"rules": {
    "import/no-named-as-default": 0
}