Quiero ejecutar varios nodos de consultas al mismo tiempo en gatsby-node.js para crear páginas de acuerdo con mi consulta, por lo que estas son las consultas:
{ allPrismicLastPosts { nodes { data { blogs { blog { document { ... on PrismicBlog { uid } ... on PrismicCulture { uid } } } } } } } } allPrismicMainBlogs { nodes { data { blogs { blog { document { ... on PrismicBlogMain { uid } } } } } } } } Entonces, para createPage una página en gatsby-node.js , necesito el uid de allPrismicLastPosts y allPrismicMainBlogs de estas consultas, esto es lo que he intentado:
{ allPrismicLastPosts { nodes { data { blogs { blog { document { ... on PrismicBlog { uid } ... on PrismicCulture { uid } } } } } } } } allPrismicMainBlogs { nodes { data { blogs { blog { document { ... on PrismicBlogMain { uid } } } } } } } } Pero esto solo obtendrá el uid allPrismicLastPosts en su lugar, quiero todo el uid , ¿alguna idea para resolver esto?
Tienes muchas maneras de hacer esto. La más fácil es asignar cada resultado de la consulta a una variable como:
const posts = await graphql(` query { allPrismicLastPosts { nodes { data { blogs { blog { document { ... on PrismicBlog { uid } ... on PrismicCulture { uid } } } } } } } } `); const mainBlog = await graphql(` query { allPrismicMainBlogs { nodes { data { blogs { blog { document { ... on PrismicBlogMain { uid } } } } } } } } `);Entonces solo necesita recorrer cada variable:
posts.data.allPrismicLastPosts.nodes.forEach(node => { createPage({ // your data here }), }); mainBlog.data.allPrismicMainBlogs.nodes.forEach(node => { createPage({ // your data here }), });