我需要确保表列与它们各自的标题对齐。给定一个头数组如下:
const titles = ['name', 'lastname', 'age']
在呈现表格时,内容可能如下所示:
const content = ['lastnameText', 15, 'nameText']
应该调整以匹配相应的标题。
这里的挑战是内容数组中项的顺序可能与标头的顺序不匹配。
<table>
<thead>
{titles.map(item => (
<tr>{item}</tr>
))}
</thead>
<tbody>
{content.map(item => (
<tr>{item}</tr>
))}
</tbody>
</table>
目前,结果显示如下:
name lastname age
lastnametext 15 nametext
正如您所看到的,标题列的位置不正确。预期结果应如下所示:
name lastname age
nameText lastnametext 15
2条答案
按热度按时间qeeaahzv1#
编辑了这个答案,找到了你想要的解决方案。看看这个code。
content
中所有行字段的顺序都是匹配的,而只是头的顺序有问题-那么这个code就足够了。因此,为了使它作为一个可重用表工作,即使
content
顺序混乱-我所做的只是在显示它之前对content
进行排序:在这里,我将介绍
content
数组,其中包含作为对象的行。对于每一行-我排序它的领域是根据标题的顺序。在每次迭代中,我使用sortedRowValues
数组,它将包含此行的<td>
元素(与标题的顺序匹配)。在完成每一行之后,我将Map的行-(*
sortedRowValues
*)推送到包含所有排序行的allSortedContent
数组。最后,在表体中,我简单地返回
allSortedContent
。你通过
props
发送的数据结构应该是这样的,但是如果它乱了序也是完全可以的:ee7vknir2#
我想它会解决你的问题,因为你有一个数组,你想把键写在头部,把项写在主体。我是这样假设的。