Попробуйте вспомнить теги как вызовы функций (см. docs ). Тогда первый будет:
{[1,2,3].map(function (n) {
return React.DOM.p(...);
})}
И второй:
{[1,2,3].map(function (n) {
return (
React.DOM.h3(...)
React.DOM.p(...)
)
})}
Теперь должно быть ясно, что второй фрагмент действительно не имеет смысла (вы можете " t возвращает более одного значения в JS). Вы должны либо обернуть его в другой элемент (скорее всего, то, что вы хотите, таким образом вы также можете предоставить действительное свойство key
), или вы можете использовать что-то вроде этого:
{[1,2,3].map(function (n) {
return ([
React.DOM.h3(...),
React.DOM.p(...)
]);
})}
С сахаром JSX:
{[1,2,3].map(function (n) {
return ([
, // note the comma
]);
})}
Вам не нужно сгладить результирующий массив, React сделает это за вас. См. Следующий скрипт http://jsfiddle.net/mEB2V/1/ . Опять же: объединение двух элементов в div / раздел, скорее всего, будет более долгосрочным.