我正在尝试使用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++;
});
虽然编译得很好。感谢。
答案 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数组中元素的键非常重要。