我的NextJS中getStaticProps函数为何无法运行?
Next.js getStaticProps 不生效的解决方法
- 先确认你的Next.js版本:13.x及以上版本默认启用App Router,而
getStaticProps只在传统的Pages Router里生效。- 查版本:执行
npm list next就能看到当前版本号。
- 查版本:执行
- 要是用的是App Router项目,改成Pages Router结构就行:
- 在项目根目录新建
pages文件夹。 - 把你写的测试代码放到
pages/index.js文件里(可以删掉原来的app目录)。 - 重新跑
npm run dev,这时候getStaticProps就能正常传值,页面会显示Hellos John!。
- 在项目根目录新建
- 已经是Pages Router但还是不行的话,检查这几点:
getStaticProps必须是顶层导出,不能嵌套在其他函数或者组件里面。- 检查函数名拼写:是不是准确的
getStaticProps(注意Static首字母大写)。 - 想调试的话,在
getStaticProps里加console.log('运行getStaticProps了'),日志会出现在终端里(因为这个函数是在服务器端/构建时执行,浏览器控制台看不到)。
你的测试代码本身没问题,只要放在Pages Router的正确位置就能正常工作。
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

