2017-01-13 73 views
1

在一個名爲index.js我有以下出口:對象在解構反應創建應用程序內

export default { 
    foo: true, 
    bar: false 
} 

後來在文件home.js我做的是以下幾點:

import { foo, bar } from './index' 

console.log(foo, bar) -> undefined, undefined 

如果我導入類似的東西:

import index from './index' 

console.log(index) -> { foo: true, bar: false } 

有人可以解釋我爲什麼會發生這種情況嗎?我做錯了什麼?

我使用:

>創建反應的應用程序內-V 1.0.3

+0

這是它應該如何在ES6中指定的工作:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import –

+0

相關:[ES6解構和模塊導入]( http://stackoverflow.com/q/33524696/218 196),[什麼時候應該使用ES6導入的花括號?](http://stackoverflow.com/q/36795819/218196) –

回答

3

你有什麼有named exports,不是解構。

你必須將其導出爲這樣的,而不是作爲一個default export

// this will export all of the defined properties as individual 
// named exports, which you can pick-and-choose when importing 
// using a similar syntax to destructuring 
const foo = true, bar = false; 
export { 
    foo, 
    bar 
} 

// imported exports named 'foo' and 'bar' 
import { foo, bar } from './my-file'. 

如果指定了default出口,那麼無論後面的關鍵字,當您導入不花括號default將出口:

// this exports an object containing { foo, bar } as the default export 
export default { 
    foo: true, 
    bar: false 
} 

// imported without {} 
import objectContainingFooBar from './my-file'; 
相關問題