2016-12-28 5 views
0

index.jsをクラスとして宣言できますか?React.js index.jsをクラスとして使用しますか?

import React, { Component } from 'react'; 
import ReactDOM from 'react-dom'; 
import App from './App'; 
import './index.css'; 


/* 
ReactDOM.render(
    <App />, 
    document.getElementById('root') 
); 
*/ 

class Apps extends Component { 
    ReactDOM.render(
     <div className="App"> 
     <p> hello </p> 
     </div> 
); 
} 

コメントアウトコードが前にあったもので、クラスのアプリは、私が達成したいものです:私はあるindex.js https://github.com/facebookincubator/create-react-app

を使用しています。

よろしく、

+1

コメントアウトされたバージョンは移動方法です。しかし、あなたが望むのであれば 'App'コンポーネントを同じファイルに書くことができますが、' ReactDOM.render'がそのまま必要です。なぜそれを変更したいのですか? – Tholle

+0

いいえ、最上位のレンダリングコードは、クラスに含まれる本当の理由はありません。 –

答えて

1

ライン

ReactDOM.render(
    <App />, 
    document.getElementById('root') 
); 

はあなたのリアクトアプリのエントリポイントです。 「コンポーネントのすべての階層を構成し、それらをレンダリングして特定のノードにマウントする」と言います。これは、コード実行がこの時点に達するとすぐに呼び出される命令文です。これはあなたのブラウザで働いているアプリを見る理由です。

この命令をクラス宣言に入れると、「ここにはコンポーネントのすべての階層を取るクラスがあります」となります。問題は、関数宣言がこの関数を実行させないのと同じように、決して実行されないということです。

ReactDOM.renderを呼び出す必要はありません。関数またはクラスには、より良い構文(which is, again, a function declaration)が必要です。グローバルな範囲にとどまりましょう。いつでも問題を起こす可能性は低いです。

関連する問題