首页 > 解决方案 > Next.js 自动静态优化

问题描述

我正在阅读有关自动静态优化的内容,我遇到了这个小部分,上面写着:

所以根据这个 文档

在预渲染期间,路由器的查询对象将为空,因为在此阶段我们没有要提供的查询信息。水化后,Next.js 将触发对您的应用程序的更新,以在查询对象中提供路由参数。

注意:通过动态路由添加到使用 getStaticProps 的页面的参数将始终在查询对象中可用。

第一段说查询对象是空的,但 NOTE 部分说它总是有可用的参数。

那么这里适用什么规则呢?

标签: reactjsnext.js

解决方案


这来自文档中动态路由的警告部分

通过自动静态优化进行静态优化的页面将在不提供路由参数的情况下进行水合,即查询将是一个空对象 ( {})。

水化后,Next.js 将触发对您的应用程序的更新,以在查询对象中提供路由参数。

还可以看看这个问题,其中在水合之前物体为空的确切行为query被共同作者讨论为正确行为。


推荐阅读