Tente pensar nas tags como chamadas de função (consulte a documentação ). Então o primeiro se torna:
{[1,2,3].map(function (n) {
return React.DOM.p(...);
})}
E o segundo:
{[1,2,3].map(function (n) {
return (
React.DOM.h3(...)
React.DOM.p(...)
)
})}
Agora deve estar claro que o segundo snippet realmente não faz sentido (você não pode retornar mais de um valor em JS). Você deve envolvê-lo em outro elemento (provavelmente o que você deseja, dessa forma, você também pode fornecer uma keypropriedade válida ) ou pode usar algo assim:
{[1,2,3].map(function (n) {
return ([
React.DOM.h3(...),
React.DOM.p(...)
]);
})}
Com açúcar JSX:
{[1,2,3].map(function (n) {
return ([
<h3></h3>, // note the comma
<p></p>
]);
})}
Você não precisa nivelar o array resultante, o React fará isso para você. Veja o seguinte violino http://jsfiddle.net/mEB2V/1/ . Novamente: agrupar os dois elementos em uma div / seção provavelmente será melhor a longo prazo.