在使用haxe-react时,它会渲染String而不是Component?

时间:2017-04-09 06:46:38

标签: javascript reactjs react-jsx haxe

我正在尝试使用Haxe和haxe-react渲染列表组件。但它呈现了''作为HTML中的字符串!任何方向。这是它的代码。

 //Get info for each song
var artists = item["artists"],
artist = "";
var artists_count = 0;

 artists.forEach(function(item) {
      var artist_obj = item["artists_count"];
      if(artists_count !== 0) {
           artist = artist + ", " + artist_obj["name"];
      } else {
           artist += artist_obj["name"];
      }
      artists_count++;
 });

虽然编译得很好。感谢。

1 个答案:

答案 0 :(得分:1)

正如作者提出的问题,原因是jsx宏不处理String所以你不能使用连接来构建它:宏在编译时转换参数jsx('JSX expression')成为React Elements。

构建React Elements列表的正确方法是构建Array<ReactElement>

private function getList() {
  var result = [];
  for (i in 0 ... 10) {
    result.push( jsx('<div key=$i>$i</div>') );
  }
  return jsx('<div style={{margin:"10px", border:"black 2px solid"}}>$result</div>');
}

PS:注意添加的key属性,指定ReactElements数组中元素的键非常重要。