我有以下模块,其中有一个命名函数... eslint(airbnb)出现错误:
8:1 error Prefer default export import/prefer-default-export
我应该如何重组代码以符合此要求?
导出/导入应在代码的开头...
感谢您的反馈
模块
import fetch from 'node-fetch';
const normalize = json => json.categories.map(category => ({
id: category.catId,
name: category.catName,
}));
export const getCategories = async () => {
const response = await fetch(
'http://mockbin.org/bin/0535d3fb-74f6-43a6-b4d4-461d84795be4',
{
method: 'GET',
headers: { accept: 'application/json' },
},
);
const json = await response.json();
return normalize(json);
};
答案 0 :(得分:1)
通常的想法是将命名导出更改为默认导出-使用的语法为export default <something>
。默认出口未命名,因此您要么必须删除getCategories
:
export default async () => {
或者,如果您希望函数位于有用的变量中,则必须提前定义函数,然后将其导出:
const getCategories = async () => {
const response = await fetch(
'http://mockbin.org/bin/0535d3fb-74f6-43a6-b4d4-461d84795be4',
{
method: 'GET',
headers: { accept: 'application/json' },
},
);
const json = await response.json();
return normalize(json);
};
export default getCategories;
(尽管模块/文件名应该是getCategories
,但我认为这不是很有用)
上述两种方法也都通过了no-use-before-define
规则。