جافاسكريبت - خطأ ESLint: 'default' ممنوع من الاستخدام كاسم مصدّر
أتلقى هذا الخطأ في eslint في ملف index.js:
'default' محظور من الاستخدام كاسم مُصدَّر no-restricted-exports
صفحة/index.js
export { default } from './test';
صفحة/test.jsx
import React from 'react';
const Test = () => {
return <div>Test</div>;
};
export default Test;
routes.js
import React from 'react';
import { Switch, Route } from 'react-router-dom';
const testPage = React.lazy(() => import('./page'));
function Routes() {
return (
<Switch>
<Route path="/" exact component={testPage} />
</Switch>
);
}
export default Routes;
.eslintrc.json
{
"env": {
"browser": true,
"es2021": true
},
"extends": ["plugin:react/recommended", "airbnb"],
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["react"],
"rules": {
"import/extensions": [
"error",
"ignorePackages",
{
"js": "never",
"jsx": "never"
}
],
"react/jsx-filename-extension": [
1,
{
"extensions": [".js", ".jsx"]
}
]
},
"settings": {
"import/extensions": [".js", ".jsx"],
"import/resolver": {
"node": {
"extensions": [".js", ".jsx"]
}
}
}
}
ما هي الطريقة الصحيحة لحل ذلك، دون تعطيل ذلك؟
الإجابة رقم 1
export { default as Test } from './test';
إذا تم استخدام ما سبق، فعليك إجراء استيراد مسمى بدلاً من الاستيراد الافتراضي مثل هذا
import { Test } from './pathToTestFolder'
هذا ليس خطأً، ولكن للاستمرار في استخدام الاستيراد الافتراضي عليك تصدير test بشكل افتراضي. يمكنك القيام بذلك
page/index.jsimport Test from './test'
export default Test
الآن يمكنك استخدام الاستيراد الافتراضي هكذا
routes.js
import Test from './pathToTestFolder'
أو وفقًا لملف المسار الخاص بك
const testPage = React.lazy(() => import('./page'));
الإجابة رقم 2
لا يمكنك تصدير default لأنه كلمة مفتاحية محجوزة. يمكنك استبدال السطر بـ :
export { default as Test } from './test';
