单行工作正常:
render: function () {
return (
{[1,2,3].map(function (n) {
return <p>{n}</p>
}}
);
}
但不适用于多行:
render: function () {
return (
{[1,2,3].map(function (n) {
return (
<h3>Item {n}</h3>
<p>Description {n}</p>
)
}}
);
}
原文由 Shawn 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试将标记视为函数调用(请参阅 文档)。那么第一个就变成了:
第二个:
现在应该很清楚,第二个代码片段没有任何意义(在 JavaScript 中不能返回多个值)。你必须将它包装在另一个元素中(很可能是你想要的,这样你也可以提供一个有效的
key
属性),或者你可以使用这样的东西:使用 JSX 语法糖:
您不需要展平结果数组。 React 会为你做到这一点。请参阅以下小提琴 http://jsfiddle.net/mEB2V/1/ 。再次重申:将这两个元素包装到一个 div/section 中很可能是长期更好的选择。