没有项目在数组jsx中迭代

时间:2015-10-18 19:37:10

标签: javascript reactjs react-jsx

我对这个问题感到疯狂。地图迭代不会迭代项目。它使{this.props.data.length}正确。我得到了' 1'在这种情况下。 控制台中没有错误或任何内容。 console.log打印对象,它包含所有数据。

var Component = React.createClass({
    render: function(){
        var data = this.props.data;

        if(data == null) {
            return (<p>...</p>)
        }
        if(data.information == null) {
            data.information = {informations: []};
        }
        if(data.technicalData == null){ 
            data.technicalData=[];
        }

        if(data.suppliers == null)  {
            data.suppliers = [];
        } else {
            console.log(data.suppliers);
        }

        return (
         <div className="row">
             <h1 className="page-header">{data.name}</h1>
             <div className="col-md-3">
                 <Information info={data.information.informations}/>
             </div>
             <div className="col-md-3">
                 <TechInfo tech={data.technicalData}/>
            </div>
            <div className="col-md-3">
                <Supplier data={data.suppliers}/>
            </div>
         </div>
         );
    }
});

var Supplier = React.createClass({
    render: function() {
      return (
            <div className="row">
                <h2>Supplier</h2>
                Number of suppliers: {this.props.data.length}
                {this.props.data.map(function(item, i){
                    <p>Supplier index: {i}</p>
                })}
            </div>
        )
    }
});
 
suppliers: [
  { name: "elfa",
    attributes: [
      { key: "artnr",
        value: "58-578-83"
      },
      { key: "url",
        value: "https://www.elfa.se"
      }
    ]
  }

1 个答案:

答案 0 :(得分:1)

你没有从map内部返回任何内容。添加return声明:

{this.props.data.map(function(item, i){
  return <p>Supplier index: {i}</p>;
})}