eslint: предпочитаю экспорт по умолчанию .. как реструктурировать мой код - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть следующий модуль, в котором есть именованная функция ... 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);
};

1 Ответ

0 голосов
/ 20 декабря 2018

Общая идея состоит в том, чтобы изменить ваш именованный экспорт на экспорт по умолчанию - используется синтаксис 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.

...