ESLint首选默认导出导入/首选默认导出

时间:2018-10-03 12:52:50

标签: reactjs eslintrc

您好,我在努力/理解我的React Project中的这种错误错误。

Prefer default export import/prefer-default-export

Helpers.js错误指向:

export function getItems() {
  fetch('./data/data_arr.js')
  .then(results => results.json())
  .then(results => this.setState({ items: results }));
}

函数导入:

import { getItems } from '../helpers/helpers';

componentDidMount() {
    getItems.call(this);
}

我尝试无济于事:

"rules": {
     "import/prefer-default-export": off,
     ...
}

我需要在函数中添加“默认”吗? export default function getItems() {...}

谢谢

3 个答案:

答案 0 :(得分:3)

要关闭此警告,您可以添加评论

/* eslint-disable import/prefer-default-export */

到导出getItems的文件的顶部。

请注意,Eslint只是在此处向您发出样式警告-如果将来打算从同一文件中导出更多功能,则代码没有“错误”。

也就是说,当您仅从文件中导出一点代码时,通常最好使用export default。这样,将代码导入另一个文件时,它是一种更好的语法。

示例

如果您只想导出一位位代码,则可以使用export default。使用export default function getItems() {...},您的导入看起来像 import getItems from '../myFile';。使用export default的优点是您可以随意使用任何名称导入文件。例如import somethingElse from '../myFile'也可以正常工作。如果文件仅用于一个目的,则此语法更简洁明了。

但是,如果要从要导出getItems()的文件中导出多个位的代码(或者将来可能要导出),则不能使用{{ 1}}。这意味着您必须使用导出时使用的名称进行导入。这样做的好处是,您可以从一个文件中导出然后导入多个代码位。例如export defaultexport {getItems, getPeople, getPets}

答案 1 :(得分:2)

"rules": {
     "import/prefer-default-export": "off",
     ...
}

off一词必须加引号。

答案 2 :(得分:1)

"rules": {
     "import/prefer-default-export": 0,
     ...
}

使用0导入/首选默认导出问题