我正在尝试为我的网站创建一个表,由于某种原因,该表仅显示第一行数据。
这是我格式化数据列的方式:
const { items } = this.props.item;
// console.log({ items });
// react - bootstrap - table - next
const columns = [{
dataField: 'team',
text: 'Team',
sort: true,
formatter: (cellContent, row, rowIndex) => (
Object.values(row.team)[rowIndex]
)
}, {
dataField: 'current_Rank',
text: 'Current Rank',
sort: true,
formatter: (cellContent, row, rowIndex) => (
Object.values(row.current_Rank)[rowIndex]
)
}, {
dataField: 'new_Rank',
text: '321 Rank',
sort: true,
formatter: (cellContent, row, rowIndex) => (
Object.values(row.new_Rank)[rowIndex]
)
}];
这是我返回表的方式,以便它呈现表:
return (
<BootstrapTable
keyField="team"
data={items}
columns={columns}
striped
hover />
)
}
}
答案 0 :(得分:0)
我查看了您对/api/items
API调用的网络响应,发现该数据仅包含一项。这是呈现表格时看到单行的原因之一。
请注意,另一个问题的原因是,
react-bootstrap-table-next
键data
接受单个Array对象。 而不是单个对象的数组。
您应该重新排列数据,以便对阵列中的所有项目都显示关键的“团队”。其余的列标题值(例如current_Rank)可用于每个相似项。
类似于我在沙箱中创建的reformat
函数here。
加号点-应用reformat
函数后,与以前的解决方案不同,您无需为每一列都使用formatter
。
替代但推荐的解决方案是仅从API端点发送格式化的响应,而不是重新分析和创建新的对象来满足UI需求。