почему мой graphql возвращает пустой массив?

#graphql #next.js #apollo-client #strapi #graphql-js

#graphql #next.js #аполлон-клиент #страпи #graphql-js

Вопрос:

Я новичок в graphql. У меня есть интерфейсный проект (nextjs) и серверный(strapi).

Это мой код

 import { ApolloClient, InMemoryCache, gql } from '@apollo/client'  export default function Blog({ posts }) {  console.log('posts', posts)  return (  lt;divgt;  {posts.map(post =gt; {  return (  lt;divgt;  lt;pgt;{posts.heading}lt;/pgt;  lt;/divgt;  )  })}  lt;/divgt;  ) }  export async function getStaticProps() {  const client = new ApolloClient({  url: 'http://localhost:1337/graphql/',  cache: new InMemoryCache(),  })   const { data } = await client.query({  query: gql`  query {  posts {  data {  attributes {  heading  }  }  }  }  `,  })   return {  props: {  posts: data.posts,  },  } }  

наряду с этим я также получаю это сообщение «не удается уничтожить свойство промежуточного значения». Кто-нибудь знает, почему, я уверен, что код правильный.

Комментарии:

1. const response = await client.query ... ответ в журнале, разрушение позже … запрос проверен с помощью почтальона/игровой площадки?

2. Не могли бы вы показать мне рабочий пример, пожалуйста.

Ответ №1:

Во-первых, я рекомендую создать папку в корневом каталоге и поместить все коды graphql, и у вас также есть синтаксическая ошибка: позвольте мне привести вам пример: /index.js

 import { ApolloClient, InMemoryCache, gql } from "@apollo/client";  const client = new ApolloClient({  uri: API,  cache: new InMemoryCache(),  defaultOptions: {  query: {  fetchPolicy: "network-only",  },  }, });  //get category ids const getCatIds = async () =gt; {  try {  const { data } = await client.query({  query: gql`  query categoriesId {  categories(sort: "id:ASC") {  id  name  }  }  `,  });  return data.categories;  } catch {  console.log("error appolo");  } }; export {getCatIds}