Строка не может представлять значение GraphQL - PullRequest
0 голосов
/ 02 февраля 2020

Я создаю GraphQL API, и на одной из моих конечных точек у меня возникает эта проблема, она говорит, что "message": "Строка не может представлять значение: [\" Vitoria \ ", \" Serra \ ", \" Cariacica \ ", \" Vila Velha \ "]".

Я пытался изменить тип: GraphQLList.


const alfa_regions = [
    {ES_capital: ['Vitoria', 'Serra', 'Cariacica', 'Vila Velha']},
    {ES_Interior: ['Piuma', 'Sao Gabriel']},
    {MG_Capital: ['Contagem']},
    {MG_Interior: ['Juiz de fora', 'Governador Valadares', 'Teofilo Otoni', 'Monte Claros']},
]


const {
    GraphQLObjectType,
    GraphQLSchema,
    GraphQLString,
    GraphQLFloat,
    GraphQLList
} = graphql

const AlfaRegionType = new GraphQLObjectType({
    name: 'AlfaRegion',
    fields: () => ({
        id: {type: GraphQLString},
        region_id: {type: GraphQLString},
        ES_capital: {type: GraphQLString},
    })
})

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
        regions: {
            type: AlfaRegionType,
            args: {id: {type: GraphQLString}},
            resolve(parent, args){
                return _.find(alfa_regions, {})
            }
        }
    }
})


1 Ответ

0 голосов
/ 02 февраля 2020

Если поле возвращает массив строк, а не только одну строку, тогда вы должны использовать GraphQLList для типа, как показано здесь :

type: new GraphQLList(GraphQLString)

или с использованием SDL

[String]

Если в массиве не будет нулевых значений, было бы еще лучше сделать

type: new GraphQLList(new GraphQLNonNull(GraphQLString))

или использовать SDL

[String!]

Если массив не будет содержать нулевые значения и само поле никогда не будет нулевым, затем выполните:

type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString)))

или с использованием SDL

[String!]!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...