Как экспортировать 2 функции стрелки на реагировать - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть этот файл

const validateIfDataExist = value => (value === null ? 'N/A' : value);

const removeNumbersFromAString = value => value.replace(/[^a-z]/gi, '');

export { validateIfDataExist, removeNumbersFromAString };

И я пытаюсь вызвать здесь один из модулей:

import removeNumbersFromAString from '../../utils/validation-utils';

Но я получаю сообщение об ошибке, когдаЯ пытаюсь импортировать его:

Экспорт по умолчанию не объявляется в импортированном модуле

Итак, почему я должен установить export default?

Ответы [ 3 ]

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

Вы можете изменить свой импорт следующим образом:

export const validateIfDataExist = value => (value === null ? 'N/A' : value);

export const removeNumbersFromAString = value => value.replace(/[^a-z]/gi, '');

export default { validateIfDataExist, removeNumbersFromAString };

Там у вас есть пример того, как экспортировать все, может быть, вам не нужно экспортировать все это, но вы можете решить.Теперь для импорта вы можете:

import { removeNumbersFromAString, validateIfDataExist } from '../../utils/validation-utils';

или

import validationUtils from '../../utils/validation-utils';
const { validateIfDataExist, removeNumbersFromAString } = validationUtils;

Экспортировать только то, что вы хотите, вместо того, чтобы использовать по умолчанию, это лучший способ избежать включения ненужных и тяжелых библиотек в ваш компонент,Но вы можете сделать оба:

Надеюсь, это вам поможет!

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

Синтаксис, который вы используете, предполагает, что вы пытаетесь импортировать экспорт по умолчанию из ../../utils/validation-utils.

Чтобы заставить его работать с тем, что у вас есть

import { removeNumbersFromAString } from '../../utils/validation-utils';

Этоизвлечет именованные экспорты из этого файла.Вы разоблачили validateIfDataExist и removeNumbersFromAString, экспортировав их так, как вы это сделали.

Что говорит вам ошибка

Кажется, вы понимаете это, но я думаю, что это справедливовоспитывать.Вы можете экспортировать константу или функцию по умолчанию из файла, выполнив следующие действия:

export default function validateIfDataExist(value) {
  return value === null ? 'N/A' : value;
}

Затем с помощью оператора import вы можете выбрать либо сохранить то же имя, либо переименовать его для ваших целей в импортируемом файле.

import removeNumbersFromAString from '../../utils/validation-utils';

или

import somethingTotallyDifferent from '../../utils/validation-utils';

оба работают одинаково, импортируя функцию по умолчанию и приводя ее к переменной.

Оператор Everything (*)

В целом, помимо этого, это также будет работать с тем, что у вас есть

import * as validations from '../../utils/validation-utils';

validations.removeNumbersFromAString(string);
validations.validateIfDataExist(data);
0 голосов
/ 12 декабря 2018

Поскольку вы не использовали default экспорт:

export default removeNumbersFromAString;

, вам придется использовать именованный импорт.

import { removeNumbersFromAString } from '../../utils/validation-utils';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...