【发布时间】:2019-04-18 08:38:47
【问题描述】:
我想为地图内的每个数据显示两行,例如我有一个名为 productResponse 的数据对象,然后我想像这样渲染 sn-p
<link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet"/>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<table class="table table-hover">
<tbody>
<tr>
<th>Name</th>
<th>Description</th>
<th>Product Group</th>
<th class="text-center">Taxable</th>
<th class="text-center">Tax Included</th>
<th></th>
</tr>
<tr>
<td>Sonair</td>
<td>Customer-focused hybrid orchestration</td>
<td>gtr</td>
<td class="text-center"><i class="fa fa-check text-info"></i></td>
<td class="text-center"><i class="fa fa-check text-info"></i></td>
<td>
<div class="btn-group" role="group" aria-label="Basic example"><button type="button" class="btn btn-outline-primary" data-toggle="modal" data-target="#exampleModal"><i class="fa fa-pencil"></i></button><button type="button" class="btn btn-outline-danger" data-toggle="modal" data-target="#exampleModal"><i class="fa fa-trash"></i></button></div>
</td>
</tr>
<tr>
<td colspan="6">append here</td>
</tr>
<tr>
<td>Biodex</td>
<td>Open-source attitude-oriented strategy</td>
<td>Sepatu Bola</td>
<td class="text-center"><i class="fa fa-times text-danger"></i></td>
<td class="text-center"><i class="fa fa-times text-danger"></i></td>
<td>
<div class="btn-group" role="group" aria-label="Basic example"><button type="button" class="btn btn-outline-primary" data-toggle="modal" data-target="#exampleModal"><i class="fa fa-pencil"></i></button><button type="button" class="btn btn-outline-danger" data-toggle="modal" data-target="#exampleModal"><i class="fa fa-trash"></i></button></div>
</td>
</tr>
<tr>
<td colspan="6">append here</td>
</tr>
</tbody>
</table>
这是我迭代数据的代码
let header =
<tr>
<th>Name</th>
<th>Description</th>
<th>Product Group</th>
<th class="text-center">Taxable</th>
<th class="text-center">Tax Included</th>
<th></th>
</tr>
let body =[];
productResponse.map((d,i)=>(
body.push(<tr>
<td>{d.name}</td>
<td>{d.description}</td>
<td>{d.product_group.name}</td>
<td class="text-center">{d.is_taxable?<i class="fa fa-check text-info"></i>:<i class="fa fa-times text-danger"></i>}</td>
<td class="text-center">{d.is_tax_included?<i class="fa fa-check text-info"></i>:<i class="fa fa-times text-danger"></i>}</td>
<td>
<div class="btn-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-outline-primary" data-toggle="modal" data-target="#exampleModal" onClick={this.edit.bind(this,d)}><i class="fa fa-pencil"></i></button>
<button type="button" class="btn btn-outline-danger" data-toggle="modal" data-target="#exampleModal" onClick={this.deleteData.bind(this,d)}><i class="fa fa-trash"></i></button>
</div>
</td>
</tr>);
body.push(<tr><td colspan="6">append here</td><tr>);
))
return [header,body];
但是好像我们不能有两个 tr,我该怎么办?
【问题讨论】:
-
"...但是我们似乎不能有两个 tr..." 是什么让你这么认为?你得到什么错误?或者什么不正确的结果?
-
注意:当你不使用它返回的数组时使用
map是一种反模式。只需使用循环,或forEach。 -
请用minimal reproducible example 更新您的问题,证明问题,最好是使用堆栈片段(
[<>]工具栏按钮)可运行。 Stack Snippets 支持 React,包括 JSX; here's how to do one. -
@T.J.Crowder 它说表达式必须有一个父元素,它可以使用一个 tr,但不能使用两个 tr
-
你可以在这种情况下使用片段。但如果您给我们一个 MCVE,我们或许可以提出更好的整体解决方案。
标签: javascript reactjs preact