You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js:能否为getStaticProps添加额外参数以按分类名查帖子?

问题解答

首先明确:你这种做法不可行。Next.js 的 getStaticPaths 中 params 对象只能包含对应路由文件里定义的动态路由参数,额外添加的字段会被框架忽略,所以 getStaticProps 里拿不到 name 值。

举个例子,如果你的路由文件是 pages/categories/[slug].js,那 params 里只能有 slug 这个键,其他键都会被过滤掉,这就是为什么你拿到的 name 是 undefined。

正确的解决思路

既然要按分类名称查帖子,你可以在 getStaticProps 里通过已有的 slug 参数先查询到对应的分类信息,再用分类名称去获取帖子:

export const getStaticProps: GetStaticProps = async ({ params }) => {
  // 第一步:通过slug获取完整的分类数据(包含name)
  const category = await getCategoryBySlug(params.slug);
  // 第二步:用分类name查询对应帖子
  const posts = await getPostsByCategoryName(category.name);

  return {
    props: { posts },
  };
};

额外说明

如果担心重复查询数据库影响性能,你可以在 getStaticPaths 生成路径时,把分类的 name 和 slug 关联存储(比如存在内存或者缓存里),但实际开发中直接通过slug查询分类是更简单可靠的方案,毕竟slug本身就是用来唯一标识分类的。

内容的提问来源于stack exchange,提问作者Kerubi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:15:51