我刚刚开始使用NextJS 13和MongoDB开发一个新的应用程序。
这个应用程序有一个导航菜单,它的元素依赖于存储在数据库中的配置对象。正如现在所设置的,导航菜单是服务器布局组件的一部分,它从数据库中获取配置对象,然后显示它。因为我希望这个导航菜单是可配置的,所以我实现了一个管理页面,管理员用户可以在其中更改存储在数据库中的导航菜单的配置对象。
为了在配置对象更改时更新导航菜单,我首先设置了revalidate
变量。(因为我认为它更适合我的用例)。然而,它似乎只适用于页面由于我的布局组件用于每个页面,我应该指定所有页面的路径以重新验证布局。
因此,有没有一种方法可以使用按需重新验证来重新验证NextJS 13中的布局组件?如果可能的话,我想避免自动重新验证。
1条答案
按热度按时间unguejic1#
我也在寻找这个答案。我挠了很长时间的头,直到我发现revalidatePath函数需要第二个参数
type
。这可以是
page
或layout
。如果指定layout
,它将:这将在下次访问页面时重新验证与提供的布局文件匹配的任何URL。
请参阅此处的文档:https://nextjs.org/docs/app/api-reference/functions/revalidatePath#revalidating-a-layout-path
在您的情况下,如果布局是根布局,则可以只使用用途:
字符串
重新验证路由路径中的布局文件。这将适用于使用该文件的所有页面。