试图进行分页,
我有一个像下面这样的数组
https://drive.google.com/open?id=1iNsIKZs8IyZbm8M1N77PAkTjqSqFugKo
在数组中,使用moment.js格式化的时间大约有一个createdAt对象
我想按降序排列,以便最新的帖子优先出现
postActions.js
firestore
.collection("posts")
.add({
...post,
authorFirstName: profile.firstName,
authorLastName: profile.lastName,
authorId: authorId,
createdAt: new Date()
})
postReducer.js
case STORE_POSTS_SUCCESS:
const snapshot = action.payload;
const array = [];
snapshot.forEach(doc => {
// console.log(doc);
// console.log(doc.id);
array.push({
id: doc.id,
authorId: doc.data().authorId,
authorFirstName: doc.data().authorFirstName,
authorLastName: doc.data().authorLastName,
title: doc.data().title,
content: doc.data().content,
createdAt: moment(doc.data().createdAt.toDate()).format(
"MMMM Do YYYY, h:mm:ss a"
)
});
});
console.log(array);
return {
...state,
// posts: array.slice(0)
posts: array
};
答案 0 :(得分:1)
按时间格式化日期的方式实际上对排序非常不利。该字符串不能按时间顺序自然排序。
如果要按日期对记录进行排序,最好只存储该时间点的日期的整数值。整数很容易排序。在Realtime Database中存储时间的典型方法是使用自unix纪元以来的毫秒数,这在现代操作系统上非常普遍。在JavaScript中,您可以使用Date.now()
获取当前时间。与大多数其他形式的日期表示形式相比,这是首选方法。