#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}