Javascript 当使用haxe react时,它会呈现字符串而不是组件?

Javascript 当使用haxe react时,它会呈现字符串而不是组件?,javascript,reactjs,react-jsx,haxe,Javascript,Reactjs,React Jsx,Haxe,我正在尝试使用Haxe和haxereact呈现列表组件。但它在HTML中将“”呈现为字符串!任何方向。这是它的代码 override public function render(){ var sList:String = this.getListString(); return jsx(' <div style={{margin:"10px", border:"black 2px solid"}}> ${ sList } </div&g

我正在尝试使用Haxe和haxereact呈现列表组件。但它在HTML中将“”呈现为字符串!任何方向。这是它的代码

  override public function render(){
  var sList:String = this.getListString();

  return jsx('
    <div style={{margin:"10px", border:"black 2px solid"}}>
     ${ sList }
    </div>
  ');
}
private function getListString():String{
  var result:String = '';
  for (i in 0 ... 10) {
    result += ('<div>'+i+'</div>');
  }
  return ('<div style={{margin:"10px", border:"black 2px solid"}}>'+result+'</div>');
}

重写公共函数render(){
var sList:String=this.getListString();
返回jsx('
${sList}
');
}
私有函数getListString():String{
变量结果:字符串=“”;
对于(0…10中的i){
结果+=(''+i+'');
}
返回(“”+结果+“”);
}

虽然它编译得很好。谢谢。

正如问题作者所想,原因是
jsx
宏不处理
字符串
,因此不能使用串联来构建它:宏在编译时将
jsx('jsx expression')
的参数转换为React元素

构建React元素列表的正确方法是构建
数组

私有函数getList(){
var结果=[];
对于(0…10中的i){
push(jsx(“$i”);
}
返回jsx(“$result”);
}

注意添加的
key
属性,在元素数组中指定元素的键很重要。

没关系。我明白了。修复方法是传递jsx数组,而不是字符串。代码如下所示:覆盖公共函数render(){var aList=this.getListArray();返回jsx('ViewList${/*aList/}');}私有函数getListArray(){var aResult=[];for(0中的i…10){aResult.push(jsx('${/i*/}');}返回aResult;}是的:)不过,你会得到一个关于键的运行时警告,你可能需要在for循环中创建的div中添加像key=$i这样的东西。谢谢@kLabz的提示:)好了,现在“如何结束这个问题!”我无法回答自己,这就是我所说的!
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>');
}