2017-01-12 7 views
0

このコンポーネントに別のコンポーネントをインポートするにはどうすればよいですか?別のファイルを作成してクラスを宣言する必要がありますか?もしそうなら、私はこのスキームにどのようにインポートするのですか?私はbabelwebpackを使用しています。reactjsでコンポーネントを互いに埋め込む方法は?

具体的には、入力を独自のコンポーネントにし、独自の状態を持ち、MyReactApplicationコンポーネントに渡します。入力ロジックはアプリケーション内の多くの場所で使用されるため、分離する必要があります。

var React = require('react'); 
var ReactDOM = require('react-dom'); 

class MyReactApplication extends React.Component { 
    constructor(props){ 
    super(props); 

    this.state = { 
     color: "hotpink" 
    }; 
    } 

    componentDidMount() { 
    this.setState({ 
     color: "steelblue" 
    }); 
    } 

    changeColor(event) { 
    this.setState({ 
     color: event.target.value 
    }); 
    } 

    render() { 
    const styleObj = { 
     backgroundColor: this.state.color 
    }; 

    return(
     <section className="temp" style={styleObj} id="my-user"> 
     <h1>{this.state.color}</h1> 
     <input value={this.state.color} onChange={this.changeColor.bind(this)} /> 
     </section> 
    ); 

    } 
} 

ReactDOM.render(<MyReactApplication name="Mustafa"/>, document.getElementById("app")); 
+1

あなたの質問にはすでに回答していると思います。はい、ファイルを作成し、通常の方法でエクスポート/インポートする必要があります。 – hawk

答えて

1

ファイル番号1:

import React from 'react'; 

export default class Textbox extends React.Component { 
    constructor(props) { 
     super(props); 
    } 
    render() { 
     return (
      <span>my text box</span> 
     ) 
    } 
} 

はファイル番号2は、テキストボックスを使用します。

import React from 'react'; 
import Textbox from './textbox'; 

export default class Textbox extends React.Component { 
    constructor(props) { 
     super(props); 
    } 
    render() { 
     return (
      <div className="texbox-wrapper"> 
       <Textbox /> 
      </div> 
     ) 
    } 
} 

babelは、ファイルをtranspileうとwebpackは、依存関係を確認し、ファイルを一緒にバンドルされます(と正しい構成)。

+0

さて、これはうまくいきました。私は一番上の2行(var React = ...)をインポート文で置き換えました。 React importingとES5 vs ES6との唯一の違いを推測しています。 – Moose

+0

それはES6対CommonJSスタイルです。サーバー側でレンダリングするためにwebpackまたはnodejを使用している場合はどちらも問題ありません – jony89

1

あなたはそれをインポートする必要があります:import Component from './file'またはvar Component = require('./file');

を次にあなたがあなたが本当にリアクトの基礎を見ている必要があり<Component />

をレンダリングにそれを使用することもできます。 https://facebook.github.io/react/tutorial/tutorial.html

1

分離してエクスポートしようとしている入力ファイルから新しいコンポーネントを作成する必要があります。次に、import InputComponentName from 'file_path'(es6)またはrequire('file_path')(es5)を<InputComponentName />のように使用します。

関連する問題