2016-11-18 83 views
-1

我想跳過在.map功能我現在要做的第一件是這樣的:如何先跳過地圖功能

return (
    <div className="gallery clearfix"> 
    <div className="gallery-image"> 
     <img src={block.gallery[0].images.thumbnail_sm} alt={block.title} srcSet={`${block.gallery[0].images.thumbnail_md} 1x, ${block.gallery[0].images.thumbnail_lg} 2x`} className="img-fluid" /> 
    </div> 
    <div className="gallery-thumbs"> 
     <div className="row"> 
     { block.gallery.slice(1).forEach((item, i) => (
      <div className="gallery-item" key={i}> 
      { block.gallery.length > 4 ? 
       <div className="inner"> 
       <img src={block.gallery[i].images.thumbnail_sm} alt={block.title} srcSet={`${block.gallery[i].images.thumbnail_md} 1x, ${block.gallery[i].images.thumbnail_lg} 2x`} className="img-fluid" title="" /> 
       <div className="img-overlay"> 
        <span className="img-overlay-body">{ block.gallery.length - 4 }+ <span className="hidden-xs">Foto's</span></span> 
       </div> 
       </div> 
       : 
       <img src="http://placehold.it/800x538" alt="" className="img-fluid" title="" /> 
      } 
      </div> 
     ))} 
     </div> 
    </div> 
    </div> 
); 

當你看到我展示第一張圖中第一img標籤,但它會也作爲第一個在.map函數中顯示,所以我得到了重複的圖像。如何跳過.map函數中的第一個圖像?

+0

爲什麼你使用'map'這裏你不返回任何東西。爲了循環數組,你可以使用'forEach'並跳過第一項,你可以檢查'if(i> 0)' – Aruna

+0

@Aruna返回的是''div className =「gallery-item」>它包含。 –

+0

這將有助於更新你的問題,因爲你的代碼不再使用'.map' – Pineda

回答

8

所以slice它跳過第一

block.gallery.slice(1).map(...) 

您還需要引用該項目傳遞到地圖,不使用與原單數組的索引。

block.gallery[i].images.thumbnail_sm 

應該

item.images.thumbnail_sm 
+0

當我這樣做的時候仍然會顯示第一張圖片 – Sreinieren

+0

當你跳過帶切片的第一個索引時爲什麼會顯示第一張圖片?你也需要擺脫裏面的i == 0檢查。 – epascarello

+0

已編輯的問題檢查出來 – Sreinieren