2016-05-20 79 views
0

所以,我有以下幾點:(反應)if-else語句在foreach循環中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

你從哪裏學會「說話」如此流利的反應?我在這裏工作的基礎知識,但我想/需要得到更先進的。任何書籍/教程你可以推薦?或者你只是一個普通的genious? ;-) –

1

的問題是在你的箭頭功能,使用塊語法({}s當繼箭頭),您需要使用return關鍵字指定返回的值。