2017-08-16 25 views
1

私は動的にそうように2つの構成要素の間にトグルしています:ReactJSの子コンポーネントに動的な小道具を渡すには?

{this.props.firstname ? (

    <ProfileDropdown 
     firstname = "SomeFirstName" 
    /> 

) : (
    .... 
)} 

しかし、その代わりの"SomeFirstName"を、私は<ProfileDropdown />コンポーネントにfirstname小道具の値としてthis.props.firstnameを渡したいです。それ、どうやったら出来るの?

答えて

5

Basic Rule

我々がカーリー ブレースでそれをラップすることにより、JSXのあらゆるJavaScript expressionを埋め込むことができます。

JSX内部の任意の式を指定するには、我々は、{}を使用し、それを使用し、その内側にthis.props.firstNameを配置する必要があります。

このようにそれを書く:

<ProfileDropdown 
    firstname = {this.props.firstname} 
/> 

は、DOCを確認してください:Embedding Expressions in JSX

更新:

をこの例をチェックしてください、あなたはより良いアイデアを得るでしょう:

{this.props.firstname ? (  //expression so {} 
    <ProfileDropdown    //jsx 
     firstname = {1 == 1 ?  //here {} to put expression inside JSX 
      <div> {1+1} </div> //inside div(JSX), so use {} again to put expression 1+1 
      : <div>World</div> 
     } 
    /> 
) 
+0

あなたが気づいたら、 ''はすでに'{}'ブロックの側であり、それが私が求めていた理由です。 1つの '{}'ブロックを別のブロックの中に入れ子にすることはできません。 – TheLearner

+0

実際は可能です。 –

+1

'{}'を使用すると、何らかの式を意味し、JSXを返す式に基づいて、JSXの内部で再び ' 'を開始すると{}を再度使用すると、 ) –

関連する問題