javascript - 为什么表格数据没有被渲染?
问题描述
只有表格标题行被呈现到网页。即使标签内的row[value]
数据<td>
被正确记录到控制台,也不会呈现标签内的数据。我应该怎么做?
我尝试将其中的代码抽象tbody
为一个函数,然后在其中调用该函数,tbody
但这也不会呈现数据。
tableHeader = () => {
let arr = [];
let row = this.props.sales[0];
for (var key in row) {
arr.push(key);
}
return arr;
};
render() {
return (
<div className="sales-leader-board">
<table className="table table-striped">
<thead>
<tr bgcolor="lightblue">
{this.tableHeader().map((name, key) => (
<th scope="col" className="align-middle" key={name}>
{name}
</th>
))}
</tr>
</thead>
<tbody>
{this.props.sales.map((row, row_key) => {
<tr key={`row-${row_key}`}>
{this.tableHeader().map((value, key) => {
<td
scope="col"
className="align-
middle"
key={`data-${key}`}
>
{row[value]}
</td>;
console.log('row[value]', row[value]);
})}
</tr>;
})}
</tbody>
</table>
</div>
);
}
我没有错误信息。
解决方案
你只是错过了return
陈述:) 你必须返回一些东西map
才能渲染到 dom。
<tbody>
{
this.props.sales.map((row, row_key) => {
return (
<tr key={`row-${row_key}`}>
{this.tableHeader().map((value, key) => {
return (
<td scope="col" className="align- middle" key={`data-${key}`}>
{row[value]}
</td>
);
})}
</tr>);
})
}
</tbody>
或者,正如您为您所做的那样,您thead
可以将箭头函数的主体括起来以省略该return
语句。
推荐阅读
- docker - Modprobe v4l2loopback docker build 失败
- java - 在 JAVA 中使用 C# 的 IVKM
- swiftui - SwiftUI 是否有类似 Cocoa 的 nextKeyView 之类的东西,以便我可以指定 TextView 在我点击选项卡时获取光标的确切顺序?
- html - 如何在 CSS 上设计倾斜按钮?
- amazon-web-services - 如何使用 powershell 脚本安装 msi 文件
- python - 如何使用 Python 检索多行 XML 标记以成为列表?
- python - Django 中的嵌套管理命令
- azure - Azure Rest API - 策略事件
- python - 在两个线程中交替输入
- json - 如何使用Vue在表格中的tr和td之间循环元素?