#javascript #reactjs #next.js #strapi
Вопрос:
NextJS и Strapi объясняют, как извлекать данные из одного типа коллекции внутри Strapi, делая это:
const pages = await (await fetch(getStrapiURL("/pages"))).json();
const paths = pages.map((page) => {
// Decompose the slug that was saved in Strapi
const slugArray = page.slug.split("__");
return {
params: { slug: slugArray },
};
});
return { paths, fallback: true };
}
Теперь моя цель-извлечь данные из нескольких типов коллекций / страниц: Вот мой текущий код, который я использую для этого:
export async function getStaticPaths() {
const [ pages, blogs ] = await Promise.all([
fetchAPI("/pages"),
fetchAPI("/blogs"),
]);
}
Как вы можете видеть, я использовал функцию обещания для получения нескольких одновременно.
Как мне сопоставить обе эти страницы вместе в функции карты
Ответ №1:
Правки: Я усложнял, используя вот так:
export async function getStaticPaths() {
const [pages, blogs] = await Promise.all([
fetchAPI("/pages"),
fetchAPI("/blogs"),
]);
const all = {pages, blogs}
const paths = Object.keys(all).map(a => ({params: all[a]}))
return {
paths,
fallback: true
}
}
Но пока вы можете просто использовать вот так:
export async function getStaticPaths() {
const all = await Promise.all([
fetchAPI("/pages"),
fetchAPI("/blogs"),
]);
const paths = all.map(a => ({params: a}))
return {
paths,
fallback: true
}
}