Я хотел бы использовать выборку для получения данных в Contentful params
. getStaticPaths
Однако я неправильно получаю параметры, поэтому я получил неправильные данные.
Аргумент типа «строка» не может быть присвоен параметру типа «{ slug: string; }'.
const getBlogEntries = async () => {
const { items }: EntryCollection<IBlogFields> = await client.getEntries({
content_type: "blog"
})
return items
}
const getBlogEntry = async ({ slug }: { slug: string }) => {
console.log('slug', slug)
const { items }: EntryCollection<IBlogFields> = await client.getEntries({
content_type: "blog",
"fields.slug[in]": slug,
limit: 1
})
return items
}
export const getStaticPaths: GetStaticPaths = async () => {
const items = await getBlogEntries()
const paths = items.map((item) => {
return {
params: { slug: item.fields.slug },
}
})
return {
paths,
fallback: false,
}
}
export const getStaticProps: GetStaticProps = async ({
params,
}) => {
console.log('params', params!.slug)
const items = await getBlogEntry(params!.slug as string)
// the error occurs in `params!.slug`
return {
props: {
blog: items[0],
},
}
}
Решение проблемы
Я получил данные:
const items = await getBlogEntry({ slug: params!.slug})
Комментариев нет:
Отправить комментарий