【发布时间】:2014-09-21 23:41:17
【问题描述】:
我有一个包含项目的数组,我想做这样的事情:
<tr>
(until have items in array
<td></td><td></td>)
</tr>
但是如果我这样做,我会得到一个 JSXTransformer 错误:
相邻的 XJS 元素必须包含在封闭标签中
工作版本:
{rows.map(function (rowElement){
return (<tr key={trKey++}>
<td className='info' key={td1stKey++}>{rowElement.row[0].value}</td><td key={td2ndKey++}>{rowElement.row[0].count}</td>
<td className='info' key={td1stKey++}>{rowElement.row[1].value}</td><td key={td2ndKey++}>{rowElement.row[1].count}</td>
<td className='info' key={td1stKey++}>{rowElement.row[2].value}</td><td key={td2ndKey++}>{rowElement.row[2].count}</td>
<td className='info' key={td1stKey++}>{rowElement.row[3].value}</td><td key={td2ndKey++}>{rowElement.row[3].count}</td>
<td className='info' key={td1stKey++}>{rowElement.row[4].value}</td><td key={td2ndKey++}>{rowElement.row[4].count}</td>
.......
</tr>);
})}
我试过这个。但是使用 <div> 封闭标签它不能正常工作。
<tbody>
{rows.map(function (rowElement){
return (<tr key={trKey++}>
{rowElement.row.map(function(ball){
console.log('trKey:'+trKey+' td1stKey'+td1stKey+' ball.value:'+ball.value+' td2ndKey:'+td2ndKey+' ball.count:'+ball.count);
return(<div key={divKey++}>
<td className='info' key={td1stKey++}>{ball.value}</td><td key={td2ndKey++}>{ball.count}</td>
</div>);
})}
</tr>);
})}
</tbody>
请告诉我如何正确包装几个 TD 标签! 我尝试使用指南 Dynamic Children,但 JSXTransformer 不允许我这样做。
【问题讨论】:
-
在我的情况下,我有一个根元素,我正在返回但仍然收到此错误。正在使用 javascript cmets 来评论代码。 JSX 对 cmets 有不同的语法。即使我认为该代码已被注释,但事实并非如此。
///**/在 JavaScript 中工作。在 JSX 中,您使用{/**/}或{//}。这些将适用于任何类之外的代码,带有类函数和普通函数。在课堂上没有其他任何地方。这是无处写的。 eslint 抛出神秘错误 -Adjacent XJS elements must be wrapped in an enclosing tag。 wesbos.com/react-jsx-comments