JavaScript导入函数语法

7
我正在尝试从另一个模块导入一个函数,但运行时出现错误:
TypeError: _this.getData is not a function.

data.js

function getData() {
  return [
    { id: 1,
      name: 'Pluto',
      type: 'Dwarf Planet'
    },
    { id: 2,
      name: 'Neptune',
      type: 'Planet'
    }
  ]
}
export { getData }

worker.js

import getData from data.js

this.data = this.getData()

然后我运行时出现了上述的浏览器错误。有什么想法是我做错了什么吗?


1
谷歌 -> "es6 import 语法" -> 1. 结果:MDN: import - Andreas
无论如何都是getData,而不是this。在模块范围内没有this - Bergi
3个回答

8
那应该是这样的。
import { getData } from data.js

没有使用括号,你导入的是不存在的default导出。

6
当使用“getData()”时,应省略“this”关键字,因为它不属于当前对象。
function getData() { .... }

export default getData;

import getData from "data.js"

this.data = getData();

4

将您的导入更改为命名导入,如下所示:

import { getData } from data.js

或者像这样将getData函数作为默认导出:

export default { getData }

这个对我来说几乎可以工作,但它是不完整的。您必须在导入的函数名称周围使用大括号(import { getData } from data.js),并且您必须在定义函数的地方将其指定为导出,如果您不打算将其作为默认导出。因此,如果您不打算导出默认值{ getData },则必须将其定义为导出函数getData() {...},例如。 - user1258361

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接