2016-12-27 19 views
0

私はcreate-react-appES6のインポート/エクスポートが機能しないのはなぜですか?

実施例では、私のクラスをインポートしようとしている:

export default class HeaderView extends Component { 
    render() { 
     return (
      <div className="header-view"> 
       {this.props.children} 
      </div> 
     ); 
    } 
} 

import HeaderView from './HeaderView'

しかし、私はその後

export class HeaderView extends Component { }

を行います

import { HeaderView } from './HeaderView'undefined

私はさまざまな方法で試しましたが、どれも動作していません。私が得た最も近い

export default { HeaderView }だったが、その後

import HeaderView from './HeaderView'Object { HeaderView:.. }import {HeaderView} from './HeaderView'で拡張するundefined

+0

奇妙な行動、あなたの2番目のアプローチでは本当ですか? –

+0

フォルダ構造+ HeaderViewをインポートしたファイルを – Ralph

+0

Uhhに表示してもよろしいですか..フォルダ構造に言及してくれてありがとうございました。私は実際に私のHeaderViewフォルダにindex.jsを持っています。ここで私はインポート/エクスポートHeaderView.js ..私の問題はそこにあると思います。 – Lauri

答えて

0

あなたの忘却はまた、あなたが各コンポーネント反応輸入する必要がある、あなたのコンポーネントで反応さ:

import React from "react"; 
export default class HeaderView extends React.Component { 
    render() { 
    return (
     <div className="header-view"> 
      {this.props.children} 
     </div> 
    ); 
    } 
} 

次に

import HeaderView from './HeaderView.js' 

が有効です。 はまた、私は、私はあなただけのは、お使いの環境にインストールされ、ライブラリや外部ファイルとして追加されているファイル拡張子のないコンポーネントをインポートすると考えているファイルの拡張子.jsまたは.jsx

を追加しました注意してください。

import { HeaderView } from './HeaderView.js' 

これは、複数のコンポーネントが同じファイル内のオブジェクトとして存在する場合に使用されます。

インポートを説明するために、この答えをチェックアウト: How to import part of object in ES6 modules

EDIT:あなたはWebPACKのデフォルトではこれらの拡張子を探すように設定しておく必要があり拡張子なしで輸入を解決するためには。

+0

OPは既に最初の例が "働いている"と言いました。したがって、 'Component'がどこかで定義されていると仮定できます。彼らはなぜ名前付きエクスポートを使用しても動作しないのだろうと思っています。 * "あなたは、あなたがあなたの環境にインストールしたライブラリや外部ファイルとして追加されるとき、ファイル拡張子のないコンポーネントだけをインポートすると信じています。" *どのように扱われるかは、OPが何も言わなかったモジュールによって決まります。 –

+0

私はちょうどそれをチェックしていました。ファイル拡張子のアートは実際にあなたの環境(packages.json)を設定して、それらの拡張子をデフォルトで探すようにしなければなりません。その拡張子を割り当てる必要はありません。つまり、Webpackはパッケージではなく、json – DirtyRedz

+0

Webpackはデフォルトで '.js'を解決します。また、OPはwebpackを使用していない可能性があります。 –

0

上記のDirtyRedzには、 を含めるようにしてください。 輸入ReactDOM、また

「-DOMを反応させ、」あなたのクラスコンポーネント にデフォルトを追加する例:輸出デフォルトクラスHeaderviewがReact.Component {..} を拡張し、別のファイル内のコンポーネントをインポートするときに、 {}内にコンポーネントを含める必要はありません。幸運

関連する問題