2017-01-13 12 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 Destructuring and Module import] (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'; 

 Смежные вопросы

  • Нет связанных вопросов^_^