2017-04-01 59 views
0

我試圖從另一個模塊,但在運行導入功能正在一個錯誤:的Javascript導入功能語法

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() 

然後運行,我得到了上面提到的瀏覽器錯誤。任何想法,我所做的不正確?

+0

谷歌 - > 「ES6導入語法」 - > 1.結果:[MDN:進口(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/導入) – Andreas

+0

無論如何它都是'getData',而不是'this'。模塊範圍中沒有'this'。 – Bergi

回答

2

你應該省略「這個」關鍵詞:

1

這應該是

import { getData } from data.js 

如果沒有括號,要導入的default出口不存在。當使用「

export default { getData } 
2

更改您的導入爲一個名爲導入這樣的:

import { getData } from data.js 

或導出getData功能這樣的默認出口getData()「它不屬於當前對象。

function getData() { .... } 

export default getData; 

import getData from "data.js" 

this.data = getData();