繁体   English   中英

导入的函数未定义

[英]Imported function is undefined

我对 ES6 有点陌生,所以我不完全确定我的问题是什么。

我有以下代码;

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


exports = {
    isUsernameTaken
}

它是由另一个文件导入的,就像这样;

import {isUsernameTaken} from "./Client"

但是,如果我尝试使用它,则会收到一条错误消息,指出 Object 不是函数。 如果我执行 console.log(isUsernameTaken),它会返回 undefined。 我不是 100% 确定问题是什么,在这里。

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"

注意:注意缺少的{} - 这仅适用于默认导出

作为参考,请参阅导出文档。

  1. exports是特定于 CommonJS 的。 相反,你应该做export { isUsernameToken }; .
  2. 即使你有 CommonJS/harmony 兼容性,直接赋值给exports变量也会被忽略,因为它的值没有被使用。 在这种情况下,您通常分配给module.exports

这样做:

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


export default isUsernameTaken;

然后像这样使用它:

import isUsernameTaken from "./Client"

希望这对你有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM