我有一个项目数组,我想做这样的东西:
<tr>
(until have items in array
<td></td><td></td>)
</tr>
但如果我这样做,我会得到一个JSXTTransformer错误:
相邻的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>);
})}
我试过这个。但是用
此处回答:未捕获错误:不变冲突:findComponentRoot(…,…$110):无法找到元素。这可能意味着DOM发生了意外的变异
<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标签!我尝试使用动态儿童指南,但JSXTransform不允许我这样做。
随着React 16的释放,出现了一种新的成分,称为Fragment。如果您希望返回元素/组件的集合,而不必将它们包装在封闭的元素中,则可以使用片段
,如下所示:
import { Component, Fragment } from 'react';
class Foo extends Component {
render() {
return (
<Fragment>
<div>Hello</div
<div>Stack</div>
<div>Overflow</div>
</Fragment>
);
}
}
所以你有两对
<tr>
{data.map(function(x, i){
return [
<td>{x[0]}</td>,
<td>{x[1]}</td>
];
})}
</tr>
不要忘记第一个
当返回多个没有包装元素的元素时,通常会发生以下错误
相邻的XJS元素必须包装在一个封闭标签中
喜欢
return (
<li></li>
<li></li>
);
这不起作用,因为您实际上返回了两个结果,您只需要返回一个DOM节点(带或不带子节点),如
return (
<ul>
<li></li>
<li></li>
</ul>
);
// or
return (<ul>
{items.map(function (item) {
return [<li></li>, <li></li>];
})}
</ul>);
为了让我正确地回答你的问题,你能提供一个JSFIDLE吗?我试着猜你想做什么,这里有一个JS的中间工作。
当使用div作为包装时,它实际上从未呈现给DOM(不知道为什么)。
<tr data-reactid=".0.0.$1">
<td class="info" data-reactid=".0.0.$1.$0.0">1</td>
<td data-reactid=".0.0.$1.$0.1">2</td>
<td class="info" data-reactid=".0.0.$1.$1.0">1</td>
<td data-reactid=".0.0.$1.$1.1">2</td>
<td class="info" data-reactid=".0.0.$1.$2.0">1</td>
<td data-reactid=".0.0.$1.$2.1">2</td>
<td class="info" data-reactid=".0.0.$1.$3.0">1</td>
<td data-reactid=".0.0.$1.$3.1">2</td>
</tr>
编辑:反应16
自React 16以来,您现在可以使用片段。
你现在会这样做吗
return <>
<li></li>
<li></li>
<>;
或者您可以使用
https://reactjs.org/docs/fragments.html
https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment
问题内容: 我有一个包含项的数组,我想做这样的事情: 但是,如果这样做,我会收到JSXTransformer错误: 相邻的XJS元素必须包装在一个封闭标签中 工作版本: 我尝试了这个。但是,使用封闭标签无法正常工作。 在这里回答: 未捕获的错误:始终违反:findComponentRoot(…,… $ 110):无法找到元素。这可能意味着DOM被意外地突变了 请告诉我如何正确包装一些TD标签! 我
问题内容: 我发现新手很难将几个或几个JSON-LD标记合并在一起。你能告诉我我在做什么错吗? 当我在Google结构化数据测试工具中输入以下标记时,它仅显示架构类型的结果,同时也显示架构类型的结果。 问题答案: 要指定多个顶级项目,您可以使用三个选项: 数组 缺点:您必须为每个项目重复此操作。 多个要素 缺点:您必须为每个项目重复元素和。 但是通常最好只提供一个顶级项,并将其他项嵌套在适当的属性
我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加
问题内容: 我现在正在开发应用程序,并进行全局切换。我想包装起来以方便使用。 然后,我在Firefox控制台中得到此结果。 如果我想使用被呼叫的行号登录该怎么办? 问题答案: 这是一个古老的问题,提供的所有答案都太过分了,存在跨浏览器的重大问题,并且没有提供任何超级有用的东西。该解决方案可在每种浏览器中使用,并完全按需报告所有控制台数据。无需黑客,只需一行代码即可签出codepen。 像这样创建开
我在CDATA标记中有一些XML格式的文本。XSLT将此数据放在列表属性名称中 有人能帮我解决这个问题吗?
最近,我发现自己不得不在没有互联网连接的机器上安装python项目的所有依赖项(20)。我用了获取所有文件并手动传输。直到现在,我才完全理解pip的天才,以及它是如何独立计算依赖关系树并以正确的顺序安装每个包的。例如,包依赖于包,而包本身依赖于包等等。 我想要一种使用命令控制台或python本身在机器上自动安装所有这些依赖项的方法,因此我转向StackOverflow并找到了以下解决方案:如何在c