首页 > 解决方案 > 排序日期抛出异常 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

标签: reactjsreact-hooks

解决方案


您需要对数据进行排序,然后对其进行映射,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>
  ))}

编辑排序日期抛出异常类型错误数据创建的排序不是函数

在此处输入图像描述


推荐阅读