2017-08-06 11 views
2

私は、それぞれが以下のキーitem:"Hoodie" price:25 size:"large"を含む複数のオブジェクトを含む配列を持っています。私はこのデータをレンダリングしたいのですが、配列をループして各オブジェクトのデータをリストに表示する方法を理解することはできません。これは私のコンポーネントですレンダリングメソッドに複数のオブジェクトのキーデータを表示する方法は?

import React, { Component } from 'react'; 
import {addCart} from './Shop'; 
import { removeCart } from '../../actions'; 
import { connect } from 'react-redux'; 

export class Cart extends Component { 
    constructor(props) { 
     super(props); 
     this.state = {items: this.props.cart,cart: [],total: 0}; 
    } 

    ... 

    render() { 
     return(
      <div className= "Webcart" id="Webcart"> 
       <div> 
        {this.state.items.map((item, index) => (
         <li className='cartItems' key={index} /> 
        ))} 
       </div> 
       <div>{this.countTotal()}</div> 
      </div> 
     ); 
    } 
} 

... 

リスト内の各オブジェクトのデータ(項目名、価格、サイズ)をどのように表示できますか?あなたは正しい道にある

+1

ループ内でオブジェクトのプロパティに簡単にアクセスできます: 'item.item、item.price、item.size' –

+1

あなたがやっていることはうまくいくでしょう。 Amr Aly氏のように、 'item.name'などを使って結果を表示することができます。このように: '

  • {item.name}
  • '。注:keyの値にインデックスよりもユニークなものを使用したい場合があります。一意であれば 'item.name'かもしれません。 –

    答えて

    1

    、ちょうどあなたのマップにこのコードを追加します。

    {this.state.items.map((item, index) => { 
        return <li className='cartItems' key={'cartItems_'+index}> 
         <h4>{item.item}</h4> 
         <p>Size: {item.size}</p> 
         <p>Price: {item.price}</p> 
        </li> 
    })} 
    

    注リターンと<li />は、コンポーネントが、「ラッパー」またはあなたがそれを呼び出すことができていないこと。また、それを意味的に保つために、<div>の中の<li>要素を折り返してはいけませんが、<ul>ですが、それはちょうど脇の下です。

    +1

    実際に彼の暗黙の復帰はうまくいくでしょう。 –

    +0

    さて、私はあなたがなぜそれを下げて投票したのか分かりません。なぜなら、それは単に普通の返品を使うことを明確にしているからです。 ES6でのリターンの仕組みを明示的に知らない人たちは、ES6でどのように働くのか分からない人は、 –

    +1

    明示的なリターンが必要だと言ったので私はdownvotedしました。私はあなたがその部分を削除したので、今downvoteを削除しました:) –

    関連する問題