Error: A required parameter (locales) was not provided as a string in generateStaticParams for /[locales]

huangapple go评论89阅读模式
英文:

Error: A required parameter (locales) was not provided as a string in generateStaticParams for /[locales]

问题

  1. 我正在尝试使用 generateStaticParams 为我的 Next.js 13 应用程序生成一些静态参数,但我一直遇到以下错误:
  2. "错误:在 /[locales] 的 generateStaticParams 中未提供必需的参数 (locales) 作为字符串"
  3. 以下是相关代码:
英文:

I am trying to generate some static parameters for my Next.js 13 application using generateStaticParams, but I keep getting the following error:

"Error: A required parameter (locales) was not provided as a string in generateStaticParams for /[locales]"

Here is the relevant code:

  1. import * as React from 'react';
  2. import { NextIntlClientProvider } from 'next-intl/client';
  3. import { notFound } from 'next/navigation';
  4. export function generateStaticParams(): { params: { locale: string } }[] {
  5. return [{ params: { locale: 'en' } }, { params: { locale: 'de' } }];
  6. }
  7. export default async function LocaleLayout({
  8. children,
  9. params: { locale },
  10. }: {
  11. children: React.ReactNode;
  12. params: { locale: string };
  13. }) {
  14. if (typeof locale !== 'string') {
  15. return notFound();
  16. }
  17. let messages;
  18. try {
  19. messages = (await import(`@/messages/${locale}.json`)).default;
  20. } catch (e) {
  21. return notFound();
  22. }
  23. return (
  24. <html lang={locale}>
  25. <body>
  26. <NextIntlClientProvider locale={locale} messages={messages}>
  27. {children}
  28. </NextIntlClientProvider>
  29. </body>
  30. </html>
  31. );
  32. }

答案1

得分: 1

你的参数必须完全匹配。在这种情况下,您的文件夹名为 locales(复数形式),而您的参数返回 locale(单数形式)。

  1. export function generateStaticParams(): { params: { locales: string } }[] {
  2. return [{ params: { locales: 'en' } }, { params: { locales: 'de' } }];
  3. }
英文:

Your parameters must match exactly. In this case your folder is named locales (plural) and your params return locale (singular).

  1. export function generateStaticParams(): { params: { locales: string } }[] {
  2. return [{ params: { locales: 'en' } }, { params: { locales: 'de' } }];
  3. }

huangapple
  • 本文由 发表于 2023年2月16日 10:36:42
  • 转载请务必保留本文链接:https://go.coder-hub.com/75467292.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定