Динамический GraphQLObjectType - PullRequest
       4

Динамический GraphQLObjectType

0 голосов
/ 22 октября 2018

Я пытаюсь создать динамический GraphQLObjectType с graphQl, что-то вроде этого:

export const Project = (data) => {
  return new GraphQLObjectType({
    name: 'Project',
    fields: () => ({
      id: {
        type: GraphQLString
      },
      type: {
        type: GraphQLString
      },
      author: {
        type: User,
        resolve: (root, args, req) => {
          ...
        }
      }
    })
  })
};

Я называю эту модель по моему запросу следующим образом:

getProjectById: {
    type: Project(structure),
    args: {
      id: { type: GraphQLString }
    },
    resolve(source, args, req) {
      const projectService = new ProjectService(req);
      return projectService.getProjectById(args.id)
    }
  }

проблемапри этом я получаю эту ошибку:

Схема должна содержать уникальные именованные типы, но содержит несколько типов с именем "Project"

где находится ошибка?у вас есть совет?большое спасибо

1 Ответ

0 голосов
/ 23 октября 2018

Звонок Project(structure) в свою очередь звонит new GraphQLObjectType({name: 'Project',...}).Если вы вызываете Project(structure) более одного раза, вы пытаетесь объявить несколько GraphQLObjectTypes с одним и тем же именем (что не имеет смысла).

Если вы хотите создать / объявить GraphQLObjectType динамически, вы должны сгенерировать уникальныйимя собственности.Например, вот так:

// assuming data.name is unique export const Project = (data) => { return new GraphQLObjectType({ name: `Project${data.name}`, ... }) }

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