PageProps Type Errors in Next.js. Type '{ slug: string; }' is missing the following properties from type 'Promise<any>'
-
После обновления Next js до 15 версии, в динамических маршрутах разработчики некоторые изменения, что приведет к ошибкам при сборке проекта.
пример:
Type error: Type 'Props' does not satisfy the constraint 'PageProps'. Types of property 'params' are incompatible. Type '{ slug: string; }' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag]Разработчики сделали динамические параметры асинхронными, поэтому нужно будет поменять типы, и получать их мы должны, например, через
awaitдо 15 версии:
// СТАРЫЙ КОД type Props = { params: { slug: string; }; }; export async function generateMetadata({ params: { slug } }: Props) { const { category } = await fetchData(slug); ... } } export default async function Page({ params: { slug } }: Props) { const data = await fetchData(slug); ... }после 15 версии:
// НОВЫЙ КОД type Props = { params: Promise<{ slug: string; }>; }; export async function generateMetadata(props: Props) { const { slug } = await props.params; const { category } = await fetchData(slug); ... } } export default async function Page(props: Props) { const { slug } = await props.params; const data = await fetchData(slug); ... }
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.