Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NextJS和Strapi:使用一个getStaticPaths()函数获取多个API页面_Javascript_Reactjs_Next.js_Strapi - Fatal编程技术网

Javascript NextJS和Strapi:使用一个getStaticPaths()函数获取多个API页面

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

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"),
  ]);
}
正如您所看到的,我使用了一个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
  }
}