Ошибка: обязательный параметр (языки) не был предоставлен в виде строки в generateStaticParams для /[языки]
Я пытаюсь сгенерировать некоторые статические параметры для своего приложения Next.js 13 с помощью generateStaticParams, но продолжаю получать следующую ошибку:
«Ошибка: обязательный параметр (языки) не был предоставлен в виде строки в generateStaticParams для /[языки]»
Вот соответствующий код:
import * as React from 'react';
import { NextIntlClientProvider } from 'next-intl/client';
import { notFound } from 'next/navigation';
export function generateStaticParams(): { params: { locale: string } }[] {
return [{ params: { locale: 'en' } }, { params: { locale: 'de' } }];
}
export default async function LocaleLayout({
children,
params: { locale },
}: {
children: React.ReactNode;
params: { locale: string };
}) {
if (typeof locale !== 'string') {
return notFound();
}
let messages;
try {
messages = (await import(`@/messages/${locale}.json`)).default;
} catch (e) {
return notFound();
}
return (
<html lang={locale}>
<body>
<NextIntlClientProvider locale={locale} messages={messages}>
{children}
</NextIntlClientProvider>
</body>
</html>
);
}
1 ответ
Ваши параметры должны точно совпадать. В этом случае ваша папка называетсяlocales
(множественное число) и ваши параметры возвращаютсяlocale
(единственное число).
export function generateStaticParams(): { params: { locales: string } }[] {
return [{ params: { locales: 'en' } }, { params: { locales: 'de' } }];
}