Intente pensar en las etiquetas como llamadas a funciones (ver documentos ). Entonces el primero se convierte en:
{[1,2,3].map(function (n) {
return React.DOM.p(...);
})}
Y el segundo:
{[1,2,3].map(function (n) {
return (
React.DOM.h3(...)
React.DOM.p(...)
)
})}
Ahora debería quedar claro que el segundo fragmento realmente no tiene sentido (no puede devolver más de un valor en JS). Debe envolverlo en otro elemento (lo más probable es que desee, de esa manera también puede proporcionar una key
propiedad válida ), o puede usar algo como esto:
{[1,2,3].map(function (n) {
return ([
React.DOM.h3(...),
React.DOM.p(...)
]);
})}
Con azúcar JSX:
{[1,2,3].map(function (n) {
return ([
<h3></h3>, // note the comma
<p></p>
]);
})}
No necesita aplanar la matriz resultante, React lo hará por usted. Vea el siguiente violín http://jsfiddle.net/mEB2V/1/ . Nuevamente: envolver los dos elementos en un div / sección probablemente sea mejor a largo plazo.