2016-10-16 6 views
1

Я делаю вызов json из api, чтобы получить список сообщений. Моя проблема заключается в том, что внутри каждого ответа от объекта post у меня есть другой массив объектов для категории сообщения. Как получить категорию объектов массива с помощью Graphql?Объект массива 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 
    }, 
}), 
}); 

Спасибо

+0

В общем, если что-то дает вам сообщение об ошибке, вы также должны сообщить, что это за ошибка. Это помогает другим понять, что не так. –

+0

Мое сообщение об ошибке Поле «категории» типа «[CatItem]» должно иметь дополнительный выбор – gig

ответ

0

Вы получаете это сообщение, потому что вы должны сказать GraphQL, какие поля (в Subselection) в categories вы хотите получить.

Вы, вероятно, пытаетесь запустить что-то вроде этого запроса:

{ 
    post(id: 1) { 
    title 
    categories 
    } 
} 

Но вам нужно указать поля для возврата (Subselection) на categories, как следующее:

{ 
    post(id: 1) { 
    title 
    categories { 
     name 
    } 
    } 
} 

Кстати, есть отличный инструмент под названием GraphiQL, который особенно полезен при начале написания запросов. Возможно, вы захотите взглянуть на промежуточное ПО express-graphql.

+0

Я пытаюсь получить все сообщения, но внутри каждого сообщения, у меня есть объект массива каждой категории, подобный этому. – gig