2016-04-12 5 views
0

reactjsとes6を使用していて、私は以下のようにjavascriptを定義しました。reactjsでモジュールをインポートできませんでした

vendor.jsx: 
export const VENDOR_LIST = [{ 
    vendor: [] 
}]; 

別のjavasriptファイルでは、このファイルをインポートしたいので、以下のコードを使用しました。しかし、私はいつもVENDOR_LISTはcomponentDidMount()メソッドでは未定義のエラーです。私のコードに何が間違っていますか?

import VENDOR_LIST from '../data/vendor' 

    export class VendorList extends React.Component{ 

    selectChanged(e){ 
    console.log('select changed ', e); 
    } 

    componentDidMount(){ 
    console.log('load vendor list data ',VENDOR_LIST); 
    } 

    render(){ 
    return (
     <select onChange={this.selectChanged}> 
     <option value="A">A</option> 
     <option value="B">A</option> 
     <option value="-">Other</option> 
     </select> 
    ) 
    } 

} 

答えて

3

:あなたのコードでは、これを試してみてください。私はカーリーとIを使用していないか

const foo = 'FOO'; 
export default foo; 

import otherFoo from '/the/file'; 

注意:defaultでエクスポートする場合は、任意の名前の変数を使用しなかったようにそれはそれが割り当てなっているものであるよう

、その後、あなたはそれをインポートすることができます私が望む任意の名前で定義します。

は今、あなたはデフォルトすることなく、複数のものをエクスポートする場合:

export const foo = 'FOO'; 
export const bar = 'BAR'; 

import { foo, bar as otherBar } = from '/the/file'; 

は今、あなたはあなたが彼らのファイルで宣言名と使用中括弧でそれらをインポートしていることが表示されます。別の変数に割り当てる場合は、常にasの表記法を使用できます。

+0

これは良い答えです。私からupvote – JordanHendrix

+0

後輩のためにもっと似ている – ZekeDroid

2

ES6のインポート/エクスポートについて知る必要があります。より良いimport文が短い中で、それはexportがファイルにどのように行われるかに関係している、ES6でどのように機能するかを説明するために

import { VENDOR_LIST } from '../data/vendor' 
+0

素晴らしいです。なぜこれに{}を追加する必要がありますか?私はクラスをインポートするときにそれをしませんでした。 –

+1

私はあなたがES6モジュールについてこの記事を見てみることをお勧めします。短い回答:vendor.jsxでこれを置き換えてください。[default] {{ ベンダー:[}]; ' – thangngoc89

関連する問題