把它想象成你只是在调用JavaScript函数。不能使用函数调用的参数所在的循环:for
return tbody(
for (var i = 0; i < numrows; i++) {
ObjectRow()
}
)
查看函数如何作为参数传递循环 - 导致语法错误。tbody
for
但是你可以创建一个数组,然后将其作为参数传递:
var rows = [];
for (var i = 0; i < numrows; i++) {
rows.push(ObjectRow());
}
return tbody(rows);
在使用JSX时,您基本上可以使用相同的结构:
var rows = [];
for (var i = 0; i < numrows; i++) {
// note: we are adding a key prop here to allow react to uniquely identify each
// element in this array. see: https://reactjs.org/docs/lists-and-keys.html
rows.push(<ObjectRow key={i} />);
}
return <tbody>{rows}</tbody>;
顺便说一句,我的JavaScript示例几乎完全是JSX示例所转换的。使用Babel REPL来了解JSX的工作原理。