NextJS按需重新验证服务器布局组件

cl25kdpy  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(98)

我刚刚开始使用NextJS 13和MongoDB开发一个新的应用程序。
这个应用程序有一个导航菜单,它的元素依赖于存储在数据库中的配置对象。正如现在所设置的,导航菜单是服务器布局组件的一部分,它从数据库中获取配置对象,然后显示它。因为我希望这个导航菜单是可配置的,所以我实现了一个管理页面,管理员用户可以在其中更改存储在数据库中的导航菜单的配置对象。
为了在配置对象更改时更新导航菜单,我首先设置了revalidate变量。(因为我认为它更适合我的用例)。然而,它似乎只适用于页面由于我的布局组件用于每个页面,我应该指定所有页面的路径以重新验证布局。
因此,有没有一种方法可以使用按需重新验证来重新验证NextJS 13中的布局组件?如果可能的话,我想避免自动重新验证。

unguejic

unguejic1#

我也在寻找这个答案。我挠了很长时间的头,直到我发现revalidatePath函数需要第二个参数type
这可以是pagelayout。如果指定layout,它将:
这将在下次访问页面时重新验证与提供的布局文件匹配的任何URL。
请参阅此处的文档:https://nextjs.org/docs/app/api-reference/functions/revalidatePath#revalidating-a-layout-path
在您的情况下,如果布局是根布局,则可以只使用用途:

revalidatePath('/', 'layout');

字符串
重新验证路由路径中的布局文件。这将适用于使用该文件的所有页面。

相关问题