Javascript NextJS和Strapi:使用一个getStaticPaths()函数获取多个API页面
NextJs和Strapi都解释了如何通过执行以下操作从Strapi内部的单个集合类型中提取数据:Javascript NextJS和Strapi:使用一个getStaticPaths()函数获取多个API页面,javascript,reactjs,next.js,strapi,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.s
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"),
]);
}
正如您所看到的,我使用了一个promise函数来同时获取多个如何在映射函数中将这两个页面映射到一起 我用这样的方法使事情复杂化了:
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
}
}
但是,尽管您可以简单地这样使用:
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
}
}