2016-06-09 23 views
0

我正在一個CMS系統上嵌套子菜單,根據用戶/定製等不同而不同。反應嵌套的地圖/ forEach不會工作

試圖解決這個問題,我在一個反應​​組件內放置一個map函數。根據文檔,這種方法只適用於一個嵌套地圖功能,但顯然不是第二個,這是我需要渲染子菜單,任何想法?

render() { 
    return (
     <div className="ui dropdown item"> 
      {this.state.text} 
      <i className="dropdown icon"></i> 
      <div className="menu"> 
       {multipleOptions.split(',').map(function(option, i){ 
        option.split('@').map(function(subOption, i){ 
         return <a className="item" key={i + "random"}>{subOption}</a>; 
        }) 
       })} 
      </div> 
     </div> 
    ) 
} 
+0

你是否在你的組件中渲染兒童? – ryudice

+0

通過您的評論我想這種方法應該工作?不知道你的意思是在我的組件中渲染兒童,這是在我的渲染組件中 –

回答

2

您需要添加return第一.map

{multipleOptions.split(',').map(function(option, i) { 
    return option.split('@').map(function(subOption, i) { 
    return <a className="item" key={i + "random"}>{ subOption }</a>; 
    }) 
})} 
2

內@ AlexanderT。的答案是正確的。如果你使用arraow函數,它會讀得更好一點

{multipleOptions.split(',').map((option, i)=> 
    option.split('@').map((subOption, i)=> 
    <a className="item" key={i + "random"}>{subOption}</a>))}