鍍金池/ 問(wèn)答/HTML/ react中使用map需要注意什么?

react中使用map需要注意什么?

做react的一個(gè)項(xiàng)目,看之前別人寫(xiě)的代碼map也沒(méi)有return,內(nèi)容就執(zhí)行了。我開(kāi)始也沒(méi)有在意,也直接寫(xiě),沒(méi)有return。最近再用map時(shí)不return就不渲染html。所以return要怎么使用?

不寫(xiě)return時(shí)map示例:
{

            chapters.map((firstItem,index) =>
              <div className="selected" key={index}>
                <div className="title-name">
                <span>{firstItem.name}</span>
                <i className="iconfont guanbi" onClick={this.closeChapter} >&#xe6b9;</i>
              </div>
              {
                 firstItem && firstItem.children && firstItem.children.map((secondItem,index)=>
                    <div className="first" key={index}>
                      <div className="first-title">{secondItem.name}</div>
                        {
                       secondItem && secondItem.children && secondItem.children.map((thirdItem,index) =>
                            <div className="second" key={index}>
                              <div className="second-title" onClick={this.selectChapter(thirdItem)}>{thirdItem.name}</div>
                            </div>
                          )
                        }
                    </div>
                )
              }
              </div>
          )}
          

map內(nèi)沒(méi)寫(xiě)return的時(shí)候html同樣渲染了

而下面這段代碼不寫(xiě)return html就不渲染

: {analysisList.map((item,index)=>{
    return(
            <div className="analysisItem" key={index}>
                <div>
                    <span className="removeAnalysis"
                          onClick={()=>this.onClickRemoveItemAnalysis(item.id)}
                    >&#xe6ed;</span>
                </div>
                {
                    item.fileType == 1 ?
                    <div className="analysisText"><img src={item.path}/></div>
                    : item.fileType == 5 ?
                    <div className="analysisText">{item.path}</div>
                    :<div className="analysisText">{item.path}</div>
                }
            </div>
    )
})
}
回答
編輯回答
孤慣

你可能要了解的是 es6 箭頭函數(shù)

不寫(xiě)大括號(hào)就是默認(rèn)return ,加大括號(hào)就要手動(dòng)return

簡(jiǎn)單的用法:
()=>1 默認(rèn)return返回1
()=>{return 1} 加大括號(hào)就要寫(xiě)return
()=>({name:1}) 想直接返回對(duì)象可以這樣寫(xiě)

2017年1月4日 09:32
編輯回答
墻頭草

哈 這不是return的事情,是箭頭函數(shù)的問(wèn)題

ary.map(item => <div>{item}</div>)

ary.map(item => { <div>{item}</div> })

的區(qū)別

一個(gè)有大括號(hào),一個(gè)沒(méi)有。有大括號(hào)必須要加 return才可以返回東西,沒(méi)有大括號(hào),默認(rèn)就是返回

2017年12月14日 04:36