2016-01-23 62 views
0

我正在尝试为自己测试反应。我收到了一个简单的“Hello World”消息,输出成功,所以我试着更进一步,并通过数据循环。反应 - 语法问题

我收到一个“等待根加载...重新加载检查器”的错误,谷歌后告诉我,我的语法有问题,我找不到它......所以你的帮助是非常感谢!

var data = [ 
    {perc:"2.2%", year:"5"}, 
    {perc:"3.2%", year: "7"} 
] 

var Rates = React.createClass({ 
    render: function(){ 
     return (
      <div> 
       <RateList data={this.props.rates} /> 
      </div> 
     ) 
    } 
}); 

var Rate = React.createClass({ 
    render: function(){ 
     return (
      <div> 
       <ul> 
        <li>{this.props.percent}</li> 
       </ul> 
      </div> 
     ) 
    } 
}); 

var RateList = React.createClass({ 
    render: function(){ 
     return (
      <div> 
       <ul> 
        { this.props.data.map(function(rate){ 
         return <Rate percent={rate.perc} /> 
        }) } 
       </ul> 
      </div> 
     ) 
    } 
}); 

ReactDOM.render(<Rates rates={data} />, document.getElementById("wow")); 
+1

也许不是你的问题,但不将'map' callba CK需要一个'返回'? – 2016-01-23 13:37:46

+0

@torazaburo这实际上是我遵循的教程,但我试图简化示例以找出问题。我想如果有必要的话,我可能需要添加返回的内容吗? – steeped

+1

'return'是必要的,除非你使用单语句箭头函数,如'this.props.data.map(rate =>

  • {rate.perc}
  • )'(然后它是隐含的) – Mikke

    回答

    1

    你似乎可以简化一点。

    var data = [ 
     
        {perc:"2.2%", year:"5"}, 
     
        {perc:"3.2%", year: "7"} 
     
    ] 
     
    
     
    var RateList = React.createClass({ 
     
        render: function(){ 
     
         return (
     
          <div> 
     
           <ul> 
     
            { this.props.rates.map(function(rate){ 
     
             return <li>{rate.perc}</li> 
     
            }) } 
     
           </ul> 
     
          </div> 
     
         ) 
     
        } 
     
    }); 
     
    
     
    ReactDOM.render(<RateList rates={data} />, document.getElementById("wow"));

    +0

    它应该是费率道具,而不是你的情况下的数据) –

    +0

    谢谢。纠正。 –