2016-03-29 5 views
0

Bir reactJS uygulaması ile çalışıyorum ve aşağıdaki kodu vardır: Bu düzende HTML çıktısıBootstrap Satırlar

renderProductBlock(product, index) { 
    return (
     <div className="product col-xs-4"> 
      <span className="product-name">{product.name}</span> 
      <span className="product-price">{product.price}</span> 
      <a href="#" className="btn btn-primary">Buy Now</a> 
     </div> 
    ); 
} 

renderProductList() { 
    let blocks = []; 

    _.forEach(product, (item, index) => { 
     const productBlock = this.renderProductBlock(item, index); 

     if(productBlock) { 
      blocks.push(productBlock); 
     } 
    }); 

    return blocks; 
} 

render() { 
    const productsBlock = this.renderProductList(); 

    if(productsBlock) { 
     return (
      <div className="products"> 
       <div className="row"> 
        {productsBlock} 
       </div> 
      </div> 
     ) 
    } 
} 

:

<div class="products"> 
    <div class="row"> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
    </div> 
</div> 

Ne benim için en iyi yol olacağını Bunun gibi bir satır div her 3 ürünleri sarmak için şu döngüler içine önyükleme satır eklemek için:

hafifçe ahmak için
<div class="products"> 
    <div class="row"> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
    </div> 
    <div class="row"> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
     <div class="product col-xs-4"> 
      Content 
     </div> 
    </div> 
</div> 

Maalesef le soru ama bunu doğru göremiyorum.

+0

Eğer bloklar 'dönüş blokları dönen denediniz;' a içinde '? – Bala

+0

Soruyu tek bir satır bloğu ile güncelledim, aslında şu anda nasıl çalıştığını ancak iyi bir şekilde çalışmamasını sağlıyor (aynı zamanda col-sm-X, col-md-X vb. Kullanıyoruz) ve sadece tek bir satırda sarılıyoruz bazı sütunlar, tam olarak 12 sütuna kadar eklenemeyen satırlara sahip olduğumuz sağa doğru kayar (yani bir satırda sadece 2 ürün). Bu nedenle ideal olarak her 3 kolonda bir satır istiyoruz :) –

cevap

2

sadece kaç bloktan takip ederim döngü içinde işleme edilmiş ve üç blok işlenir kez üst üste grup onları :

renderRow() { 
    return (
     <div class="row"> 
      {block} 
     </div> 
    ); 
} 

renderProductList() { 
    let blocks = [], rows = []; 
    _.forEach(product, (item, index) => { 
     const productBlock = this.renderProductBlock(item, index); 
     if (productBlock) { 
      blocks.push(productBlock); 
     } 
     if (block.length >= 3) { 
      const row = this.renderRow(blocks); 
      if (row) { 
       rows.push(row); 
      } 
      blocks = []; 
     } 
    });  
    const row = this.renderRow(blocks); 
    if (row) { 
     rows.push(row); 
    } 
    return rows; 
} 
+0

Nice, Modulus 'index% 4' vb. Kullanmaya çalışıyordum ama bir araya gelmiyordu. Bu çok daha iyi, teşekkürler! –

+0

tepki olarak bunu yapmak için daha kolay bir yolu olsaydı diledi, ama yine de, bu bana bootstrap satırları ve sütunları hesaplamak bana biraz zaman kazandırdı, teşekkürler! – Truchainz