Watch a live product demo 👀 See how Sanity powers richer commerce experiences

Next.js GetStaticProps - How to Fetch Multiple Types on the Same Page

1 replies
Last updated: Jul 13, 2021
Hi guys, I am using the Sanity Client to fetch data with next js using the getStaticProps for pages like about, contact etc etc
Now fetching works but I also want to fetch a different type like “authors” on the same page and map through them.

But i don’t want to copy paste the client? How can I fetch multiple types on one page.

thanks!

Code:


import  sanityClient  from "../lib/client";
import { aboutQuery, teamQuery } from "../lib/queries";

const People = ({ context }) => {
    const { title, author } = context;

    console.log(context);

    return (
        <div>
            <h2>{title}</h2>
            <p>{author.name}</p>
        </div>
    )
}

export default People;

export async function getStaticProps() {
    const context = await sanityClient.fetch(aboutQuery, teamQuery);


    return { props: { context } };
  }
Queries:


export const aboutQuery = `*[_type == "page" && title == "About"][0]{
    _id,
    title,
    slug,
    author-> {
        name
    }
}`;

export const teamQuery = `*[_type == "author"]{
    _id,
    bio,
    slug,
    jobTitle,
    name,
    authorImage,
}`;

Jul 13, 2021, 10:43 AM
you can query for multiple types like this:
{
  'type1': *[_type == 'type1'], 
  'type2': *[_type == 'othertype'] }
So in your case you can probably import both queries & reuse them:


client.fetch(`
  {
    'team': ${teamQuery},
    'about': ${aboutQuery},
  }
`)
Jul 13, 2021, 3:46 PM

Sanity.io – build remarkable experiences at scale

Sanity is a customizable solution that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Categorized in

Related answers

Get more help in the community Slack

TopicCategoriesFeaturedRepliesLast Updated
After adding the subtitle and running this code npm run graphql-deploy It does nothingSep 15, 2020
how to limit a reference to just one entry in Studio reference input side versus the default as-many-entries-as-you-fill-in-an-array...Sep 18, 2020
Is it possible to fetch more than one "_type" using GROQ?Nov 2, 2020
I want to add a view with the Structure builder (S.view.component) where I list similar documents based on the title. What...Sep 23, 2020
Is there a structure builder example where the format of each preview for the document list is modified?Feb 3, 2021
I have an array of references to a country schema type but it always just returns NULL values for meJan 30, 2021
Hi, I need help with a query for getting the url of an image asset. Here is what I've been trying, but I only get the _ref...Dec 1, 2020
Sanity UI looks brilliant :smiley: Is something like the current date picker possible at the moment? I’m not sure if anicon...Dec 21, 2020
Hey everyone. I have been coding and may have potentially accidentally deleted something. Does anyone know how to resolve...Dec 26, 2020
Hello everyone and happy new year :raised_hands::skin-tone-2:, I have a problem with outputting Portable Text :disappointed:...Jan 1, 2021

Related contributions

Clean Next.js + Sanity app
- Template

Official(made by Sanity team)

A clean example of Next.js with embedded Sanity ready for recomposition.

Cody Olsen
Go to Clean Next.js + Sanity app

Blog with Built-in Content Editing
- Template

Official(made by Sanity team)

A Sanity-powered blog with built-in content editing and instant previews.

Go to Blog with Built-in Content Editing