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

Next.js 13中getStaticProps未被调用问题求助

问题原因及解决办法

你遇到的问题核心是Next.js的App Router(app目录)不支持Pages Router(pages目录)的getStaticProps方法,这是两个路由系统的设计差异。

在App Router中,数据获取逻辑有了全新的实现方式,替代了旧的getStaticProps、getServerSideProps等API:

1. 静态生成(SSG)场景

如果你需要静态生成页面(类似原getStaticProps的作用),可以这么做:

  • 直接在组件内用async/await获取数据(App Router默认组件是Server Components,支持异步操作)
  • 用generateStaticParams方法生成动态路由的静态参数(对应原getStaticPaths的作用)

修改后的示例代码:

async function TagPage({ params, searchParams }) {
  // 这里直接写数据获取逻辑,替代getStaticProps
  const fetchedData = await fetch(`https://your-api.com/tags/${params.tag}`).then(res => res.json());
  
  console.log(params, searchParams, fetchedData);
  return <h1>hi</h1>;
}

// 生成需要静态预渲染的tag路由参数
export async function generateStaticParams() {
  // 示例:从数据源获取所有tag列表
  const tags = ['quotidien', 'tech', 'lifestyle'];
  return tags.map(tag => ({ tag }));
}

export default TagPage;

2. 其他数据获取场景

  • 如果需要服务器端实时渲染数据,直接在Server Component里异步获取即可,无需额外方法
  • 如果需要客户端侧数据获取,可以使用SWR或React Query这类库,在加了'use client'指令的Client Component中实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:42:14