reactjs - 排序日期抛出异常 TypeError: data.createdAt.sort is not a function
问题描述
对日期进行排序会引发异常TypeError: data.createdAt.sort is not a function
。我想在我的反应应用程序中首先对最新记录进行排序和显示。
{
displayWinner.map(data => (
<div key={data.id}className="oldwinner">
<div className="winnerIcon">
<img src="/images/trophy1.png"></img>
<span key={data.winner} className="winner name">{data.winner}</span>
<span key={data.createdAt} className="winner date">{moment(data.createdAt.sort((a, b) => b - a)).format('DD-MMM-YYYY')}</span>
</div>
</div>
))
}
https://codesandbox.io/s/zen-edison-l4shu?file=/src/styles.css
解决方案
您需要对数据进行排序,然后对其进行映射,sort((a, b) => moment(b.createdAt) - moment(a.createdAt))
. 取每个元素并将createdAt
属性转换为momentjs DateTime 对象进行数值比较
{displayWinner
.sort((a, b) => moment(b.createdAt) - moment(a.createdAt))
.map((data,) => (
<div key={data.createdAt} className="oldwinner">
<div className="winnerIcon">
<img key="data" src="/images/trophy1.png"></img>
<span key={data.winner} className="winner name">
{data.winner}
</span>
<span key={data.createdAt} className="winner date">
{moment(data.createdAt).format("DD-MMM-YYYY")}
</span>
</div>
</div>
))}
推荐阅读
- java - 如何优化 Java Swing 中的事件处理?
- tensorflow - 推荐的分析分布式张量流的方法
- android - 为 BottomNavigationView 上的选定图标设置动画
- vba - 将 Word 表单数据拉入 Excel 工作簿时出现 OLE 和/或运行时 438 错误
- python - 将矩阵元素替换为 1
- servicestack - 服务堆栈:更新
(...) 产生“重复条目” - php - PHP 创建计划页面和结帐后页面
- vba - 包含范围的文本的 Excel 转换——数字到字母数字
- bash - Bash:错误报告流程突然将值从 1 更改为 0
- debian - 在 Beaglebone green 上交叉编译 debian