i18next 与 NextJs 13,动态路由由于 RootLayout 中的 getStaticParams 而中断

问题描述 投票:0回答:0

我在这里遵循模板的结构用NextJs 13.2实现i18next。

问题是如果你想创建一个嵌套的动态路由(例如 app/[lng]/user/[id]/page.tsx)它会导致问题

A required parameter (id) was not provided as a string in generateStaticParams

这是由这部分代码引起的,需要在 RootLayout 中渲染 html lang 标签,即 app/[lng]/layout.tsx

const languages = ["en", "de"];

export async function generateStaticParams() {
  return languages.map((lng) => ({ lng }));
}

我怎样才能最好地避免这个问题?因为我不确定在哪里可以移动 generateStaticParams 函数,因为它需要在根布局文件中正确应用 html lang 标记。

尝试在使用 18next 和 NextJs 13 时能够创建具有 2 段的动态路由。即 app/[lng]/user/[id]

但是由于安装 NextJs 它需要一个自定义的 RootLayout,它会破坏所有嵌套路由。

typescript next.js internationalization vercel i18next
© www.soinside.com 2019 - 2024. All rights reserved.