【发布时间】:2021-05-26 15:30:36
【问题描述】:
我正在使用 Next.js 和 MDX 编写博客。为此,我下载了我正在尝试适应的this repo。但我找不到如何对帖子进行排序。现在它们按字母顺序排列,但我想按日期(或自定义排序)对它们进行排序。我该怎么做?
这是代码:
{posts.map((post) => (
<section key={post.filePath}>
<Link
as={`/posts/${post.filePath.replace(/\.mdx?$/, "")}`}
href={`/posts/[slug]`}
>
<a>{post.data.title}</a>
</Link>
</section>
))}
export function getStaticProps() {
const posts = postFilePaths.map((filePath) => {
const source = fs.readFileSync(path.join(POSTS_PATH, filePath));
const { content, data } = matter(source);
return {
content,
data,
filePath,
};
});
return { props: { posts } };
}
编辑:
我尝试对元素图进行排序。它起作用了,但是每次我重新加载页面时,它都会按字母顺序排列。这是从哪里来的?
这是我的新代码:
const SortedPosts = posts.sort((a, b) =>
a.position > b.position ? 1 : -1
);
{SortedPosts.map((post) => (
<section key={post.filePath} position={post.data.position}>
<Link
as={`/posts/${post.filePath.replace(/\.mdx?$/, "")}`}
href={`/posts/[slug]`}
>
<a>{post.data.title}</a>
</Link>
</section>
))}
【问题讨论】: