我在这里遵循模板的结构用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,它会破坏所有嵌套路由。