2016-05-18 8 views
0

私はES6で関数をエクスポートして、他のファイルから関数にアクセスしようとしています。 しかし、私はどのように把握することはできません。ES6のエクスポートとインポートの問題

ファイル1:(インポート)

import components from './components/components'; 
console.log(components.hej); 

ファイル2:(エクスポート)

var hej =() => { 
    console.log('HEj'); 
}; 

export var hej; 

は、なぜ私はファイル1からファイル2に宣言された関数 "HEJ" にアクセスすることはできませんか? 私には意味がありません。

助けてください!

+0

ディレクトリ構造を投稿してください。 –

+0

名前付き変数に関数を格納し、それを変数に公開する場合は、関数の矢印を使用する必要はありません。この場合、標準の 'function hej(){...}'を使用してください。 – libik

+0

あなたは輸入と輸出について全く読まなかったようです。 MDNには、何をすべきか正確に示す例があります:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import、https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Statements/exportにあります。 –

答えて

4

インポートの構文が機能しないように、デフォルトのエクスポートではなく名前付きのエクスポートを実行しています。

// Imports a single object by name 
import { hej } from './components/components'; 
console.log(hej); 

をまたは::それはスタンドとしてhejをインポートするには、あなたがしなければならないと思います。また

// Imports all exported objects grouped together under the specified name 
import * as components from './components/components'; 
console.log(components.hej); 

を、エクスポートの構文は適切ではない - あなたがいないならようexport var hejは、export { hej }する必要がありますそこに新しい変数を定義すると、既存の変数を使用しています。また、関数の宣言をexport var hej =() => { ... };に変更することもできますが、これは同じ効果があります。

+0

ああ、私は参照してください。ありがとう。これは本当に私を助けました。 – user2952238

+0

@ user2952238:喜んで私は助けることができました。 Felix Klingがコメントに載せたリンクを読むことをお勧めします。そこには良い例がいくつかあります。 –

関連する問題