2017-01-17 9 views
0
const HiContainer => (props) { 
    render{ 
    return(
     <h1>Hi {this.props.greet}</h1> 
    ) 
    } 
} 

ReactDOM.render(
    <HiContainer greet="hi"/> 
    document.getElementById('root') 
); 

このコードの何が問題なのですか?それはデバッグするのは難しい私はどのラインがコンソールに問題があるか見ることができません。単純な反応の例を表示できません

また、いつconstructorを使用する必要がありますか?

+0

は「ルート」のIDを使用してDOMの要素はありますか?また、 ''の後にカンマが必要です – derp

答えて

1

問題は、arrow関数を間違った方法で使用していることです。

const HiContainer =() => {}のようになります。これを試してみてください 、それは動作します:あなたはstateless componentsを使用しているので、

const HiContainer = (props) => { 
    return(
     <h1>Welcome {props.greet}</h1> 
    ) 
} 

ReactDOM.render(
    <HiContainer greet="hi"/>, 
    document.getElementById('app') 
); 

constructorはあなたがstateful componentsを使用する際に必要とされ、状態変数に情報を格納し、constructorは必要ありません。ワーキング例えば

チェックjsfiddle:ステートレス機能コンポーネントのhttps://jsfiddle.net/ej2szg3a/

チェックこれを:https://www.reactenlightenment.com/react-state/8.4.html

+0

ここでjsbinに何が問題なのですか? https://jsbin.com/xemumifibu/1/edit –

+0

問題はあなたが要素の後に 'comma'を使用していないということです:' ReactDOM.render( 、 document.getElementById root ') );' –

+0

これをチェックしてください:https://jsbin.com/feloxexubu/1/edit?html、js、出力 –

1

あなたはrenderメソッドを自動的に処理する機能コンポーネントを使用しているようです。

コードは次のようになります。

const HiContainer = (props) => (
    <h1>Hi {props.greet}</h1> 
) 

あなたがコンポーネントにライフサイクルメソッドを追加したい場合は、クラスコンポーネントに変換する必要があります。

+0

https://jsbin.com/petuxikiro/1/editここでは動作しません –

+0

jsbinは元の質問のコードを使用しているためです。上記のコードでconstを置き換えてみてください。 –

+0

も動作しません。新しいリンクhttps://jsbin.com/bepugawisa/1/edit –

2

あなたは、いくつかの構文エラーを持って、

const HiContainer = (props) => { 
    return(
    <h1>Hi {props.greet}</h1> 
) 
} 

であるべきとに簡素化することができます。

const HiContainer = props => <h1>Hi {props.greet}</h1> 

あなたは基礎から学ぶ必要があり、これは、矢印関数です: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

+0

はまだ動作しません。 https://jsbin.com/jehusanoto/1/editレンダリングやリターンの使用はいつですか?なぜあなたはレンダリングせずに戻るリターンを使用したのですか? –

+0

この構文は機能的なステートレスコンポーネントです。関数自体はレンダリング関数なので、 'render'を書く必要はありません – CodinCat

+1

通常のステートフルなコンポーネントを使用する場合は、コンポーネントクラスでレンダリング関数を宣言する必要があります。 'class MyComponent extends React.Component {render(){return

こんにちは

}}' – CodinCat

関連する問題