2015-11-04 22 views
8

ReactJSの新機能です。私は小さな単一のページのアプリケーションを開発していると私は私の主なコンポーネント内にインポートするために私のコンポーネントを作成しようとしています。私main.jsxインサイドReactJS - コンポーネントをインポートできません

TestComponent.jsx

import React from 'react' 

export class TestComponent extends React.Component { 

    render() { 
     return (
      <div className="content">Test Component</div> 
     ) 
    } 
} 

私は

import TestComponent from './components/TestComponent.jsx' 

を呼び出し、このコンポーネントは、その後、私は特定のルートのための私のコンポーネントを呼び出すようにしようとしたインポートしました:

render(
    (<Router history={history}> 
     <Route path="/" component={NavMenu}> 
      <IndexRoute component={Index}/> 
      <Route path="test" component={TestComponent}></Route> 
     </Route> 
    </Router>), 
    document.getElementById('main') 
) 

私はコンソールから何のエラーもありませんでしたが、コンポーネントが表示されません。私は間違って何をしていますか?

答えて

9

中括弧を使用しないインポート構文は、名前付きエクスポートをインポートするのではなく、デフォルトのエクスポートをインポートするためのものです。

コンポーネントデフォルトのエクスポートを行います。

TestComponent.jsx

import React from 'react' 

export default class TestComponent extends React.Component { 

    render() { 
     return (
      <div className="content">Test Component</div> 
     ) 
    } 
} 

それは次のimport文であるとして、別の方法としては、それをインポートすることができるはずです。

import { TestComponent } from './components/TestComponent.jsx' 

あなたのリアクションコードでES6を使いたい場合は、ES6モジュール(例えばExploring ES6)を読むことができます。

+0

もう1つは私が探していたものでした。リンクにも感謝しています! –

+1

@ LucaMormile動作している間は、通常、デフォルトのエクスポートをお勧めします。ファイルごとに1つのコンポーネントが必要です。デフォルトのエクスポートでうまく動作します。しかし、第二のものも確かに有効です。 –

+0

あなたは正しい人です。私はReactのドキュメントを読んで、同じ勧告について説明します。私はこのアプローチに従います、もう一度ありがとう! –

関連する問題