Импортированная функция не определена - PullRequest
1 голос
/ 26 января 2020

Я немного незнаком с ES6, поэтому я не совсем уверен, в чем моя проблема.

У меня есть следующий код:

const isUsernameTaken = username => {
    console.log(username);
}


exports = {
    isUsernameTaken
}

И он импортирован другим файлом, например, так:

import {isUsernameTaken} from "./Client"

Однако, если я пытаюсь его использовать, я получаю сообщение об ошибке, утверждающее, что Object не является функцией. Если я делаю console.log (isUsernameTaken), он возвращает неопределенное значение. Я не уверен на 100%, в чем проблема, здесь.

Ответы [ 3 ]

2 голосов
/ 26 января 2020

exports = {} - неправильный синтаксис. Чтобы создать экспорт по умолчанию / по имени, используйте следующее.

Именованный экспорт

const isUsernameTaken = username => {
    console.log(username);
}


export { isUsernameTaken }

Тогда ваш импорт должен работать как положено.

import { isUsernameTaken } from "./Client"

Экспорт по умолчанию

Экспорт по умолчанию позволяет исключить {} из оператора и , если следует использовать , если ваш модуль имеет только один экспорт.

export default const isUsernameTaken = username => {
    console.log(username);
}

Тогда импортировать так.

import isUsernameTaken from "./Client"

Примечание: обратите внимание на отсутствие {} - это работает только с по умолчанию export

Для справки см. на экспорт документов.

0 голосов
/ 26 января 2020
  1. exports является общим JS -specifi c. Вместо этого вы должны выполнить export { isUsernameToken };.
  2. . Даже если у вас есть совместимость с CommonJS / гармонией, присвоения непосредственно переменной exports игнорируются, поскольку ее значение не используется. В этом случае вы обычно назначаете module.exports.
0 голосов
/ 26 января 2020

Сделайте это следующим образом:

const isUsernameTaken = username => {
    console.log(username);
}


export default isUsernameTaken;

А затем используйте это как:

import isUsernameTaken from "./Client"

Надеюсь, это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...