使用es6未定义导入erorr

时间:2017-02-24 07:14:41

标签: javascript reactjs ecmascript-6 jestjs

我尝试按照这里的教程。我安装了babel,但我无法检测到我在下面做了什么错误

sum.js

export default sum = (a, b) => {
    return a + b;
}

sum.test.js

import sum from './sum';

test('1 + 2 should equal to 3', () => {
    expect(sum(1,2)).toBe(3);
});

sum.test.js中未定义错误总和。 2个文件放在同一级别的目录中。

2 个答案:

答案 0 :(得分:3)

我认为,问题是您忘记在sum中定义sum.js,请按以下方式编写:

let sum;
export default sum = (a, b) => {
    return a + b;
}

let sum = (a, b) => {
    return a + b;
}

export default sum;

注意:如果是default export,您可以删除该名称,因为default export每个文件只有一个。在导入时,您可以使用任何名称,如下所示:

import ABC from './sum';

<强>更新

定义函数有两种方法:

1: function sum(){}
2: var sum = function(){}

因此,如果你使用第一个然后直接导出它(不需要定义):

export default sum(){}

但如果您使用第二个,那么您需要定义变量,因为您将函数定义存储在该变量中:

let sum;

export default sum = () => {}

let sum = () => {}

export default sum;

查看此文章:https://danmartensen.svbtle.com/build-better-apps-with-es6-modules

答案 1 :(得分:0)

您需要在导出中使用前声明总和

喜欢var sum;