Reactjs 排序日期引发异常类型错误:data.createdAt.sort不是函数
排序日期引发异常Reactjs 排序日期引发异常类型错误:data.createdAt.sort不是函数,reactjs,react-hooks,Reactjs,React Hooks,排序日期引发异常类型错误:data.createdAt.sort不是函数。我想在react应用程序中首先对最新记录进行排序和显示 { displayWinner.map(data => ( <div key={data.id}className="oldwinner">
类型错误:data.createdAt.sort不是函数
。我想在react应用程序中首先对最新记录进行排序和显示
{
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>
))
}
{
displayWinner.map(数据=>(
{data.winner}
{矩(data.createdAt.sort((a,b)=>b-a)).format('DD-MMM-YYYY')}
))
}
应在映射值之前进行排序
{
displayWinner.sort((a, b) => moment(b.createdAt).format('DD-MMM-YYYY') - moment(a.createdAt).format('DD-MMM-YYYY')).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).format('DD-MMM-YYYY')}</span>
</div>
</div>
))
}
{
displayWinner.sort((a,b)=>moment(b.createdAt).format('DD-MMM-YYYY')-moment(a.createdAt.format('DD-MMM-YYYY')).map(数据=>(
{data.winner}
{矩(data.createdAt).format('DD-MMM-YYYY')}
))
}
至少有两种情况下您可以获得此类型错误:x.sort不是一个函数
。当您试图调用string
或Object
上的sort
时。在您的情况下,首先需要对值进行排序,然后映射
{
displayWinner.sort((a,b)=>b-a).map(数据=>(
{data.winner}
{矩(data.createdAt.format('DD-MMM-YYYY'))
))
}
您需要对数据进行排序,然后将其映射,排序((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>
))}
{displayWinner
.sort((a,b)=>力矩(b.createdAt)-力矩(a.createdAt))
.map((数据,)=>(
{data.winner}
{矩(data.createdAt).format(“DD-MMM-YYYY”)}
))}
是
数据。createdAt
是一个可排序的数组?你能分享一下你映射的displayWinner
值是什么,并描述一下你想做什么吗?据我所知,你似乎在尝试对单个日期字符串进行排序。我已经添加了在该部分进行迭代的数据,对吧,所以data.createdAt
是一个日期时间字符串,没有可以调用的.sort
。是否要通过此createdAt
元素属性对displayWinner
数组进行排序?displayWinner具有上一个winner部分下显示的表中的所有记录的列表。我想在topYes上显示最新记录要按此createdAt元素属性对displayWinner数组进行排序,请注意,这不起作用,