2016-05-20 5 views
0

にforeachループ内のIf-else文を(リアクト):だから私は、次のしているJSX

// Build the component HTML. 
return (
    <dl className={ classes }> 

    {items.map((item, index) => 
     { item.type === 'dd' ? 
     <dd key={ index } index={ index }>{ item.text }</dd> 
     : 
     <dt className="search-result__description-list__description" key={ index } index={ index }>{ item.text }</dt> 
     } 
    )} 

    </dl> 
); 

問題:何もレンダリングされません。データはitemsにあります。 if-elseステートメントを使わずにコンテンツをログするだけで、データも返されます。しかし、if-elseステートメントを使用すると何も表示されません。エラーエーテルはありません。

どのような考えですか?

答えて

4

あなたが同じロジックで、このフィドルを見ることができますリターン声明に

// Build the component HTML. 
return (
    <dl className={ classes }> 

    {items.map((item, index) => 
     { return item.type === 'dd' ? 
     <dd key={ index } index={ index }>{ item.text }</dd> 
     : 
     <dt className="search-result__description-list__description" key={ index } index={ index }>{ item.text }</dt> 
     } 
    )} 

    </dl> 
); 

を忘れてしまった: https://jsfiddle.net/69z2wepo/94452/

+0

私はコーヒーが必要です> -

+0

@WarreBuysseコーヒーは、忘れた帰りのキーワードで本当に役に立ちます。具体的には、太い矢印の機能(CoffeeScriptから借用)。帰りの言葉なしに私の答えからバイリンガルを書くことができます! https://jsfiddle.net/yeg9et8w/ – Everettss

+0

リアクションを流暢に「話す」ことはどこで学んだのですか?私はここで基本を取り上げていますが、もっと進歩したいと思っています。あなたがお勧めできる本/チュートリアルはありますか?または、あなたは単なる芸人ですか? ;-) –

1

ブロック構文を使用した場合、問題は、あなたの矢印機能である(以下{}s矢印)、returnキーワードを使用して戻り値を指定する必要があります。

関連する問題