#reactjs #graphql
#reactjs #graphql
Вопрос:
Я выполняю вызов json из API, чтобы получить список сообщений. Моя проблема в том, что внутри каждого ответа объекта post у меня есть другой массив объектов для категории post. Как получить категорию объекта массива с помощью Graphql?
я пытаюсь это сделать, но возвращаю мне ошибку
const Cat = new ObjectType({
name: 'CatItem',
description: 'cat',
fields: () => ({
id: {
type: new NonNull(ID),
description: 'cat',
resolve: (root) => root.id
},
slug: {
type: StringType,
description: 'cat',
resolve: (root) => root.slug
},
name: {
type: StringType,
description: 'cat',
resolve: (root) => root.name
},
}),
});
const PostType = new ObjectType({
name: 'PostItem',
description: 'post',
fields: () => ({
id: {
type: new NonNull(ID),
description: 'post',
resolve: (root) => root.id
},
slug: {
type: StringType,
description: 'post',
resolve: (root) => root.slug
},
title: {
type: StringType,
description: 'post',
resolve: (root) => root.title
},
content: {
type: StringType,
description: 'post',
resolve: (root) => root.content
},
categories: {
type: new List(CatType),
description: 'post',
resolve: (root) => root.category
},
date: {
type: StringType,
description: 'post',
resolve: (root) => root.date
},
authorName: {
type: StringType,
description: 'post',
resolve: (root) => root.display_name
},
authorAvatar: {
type: StringType,
description: 'post',
resolve: (root) => root.user_avatar
},
}),
});
Спасибо
Комментарии:
1. В общем, если что-то выдает вам ошибку, вы также должны опубликовать, что это за ошибка. Это помогает другим понять, что не так.
2. Мое сообщение об ошибке: поле «категории» типа «[CatItem]» должно иметь дополнительный выбор
Ответ №1:
Вы получаете это сообщение, потому что вам нужно сообщить GraphQL, какие поля (подвыборку) внутри categories
вы хотите получить.
Вероятно, вы пытаетесь выполнить запрос примерно так:
{
post(id: 1) {
title
categories
}
}
Но вам нужно указать поля для возврата (подвыборки) categories
, например, следующие:
{
post(id: 1) {
title
categories {
name
}
}
}
Кстати, есть отличный инструмент под названием GraphiQL, который особенно полезен при начале написания запросов. Возможно, вы захотите взглянуть на промежуточное программное обеспечение express-graphql.
Комментарии:
1. Я пытаюсь получить все сообщения, но внутри каждого сообщения у меня есть объект массива каждой категории, подобный этому.