У меня так:Циклическая GraphQL Схема не работает
//driverType.js
module.exports = new GraphQLObjectType({
name: 'Driver',
fields:() => ({
homeTerminal: {
type: TerminalType,
resolve: resolver(User.HomeTerminal)
}
})
});
и это:
//terminalType.js
module.exports = new GraphQLObjectType({
name: 'Terminal',
fields:() => ({
drivers: {
type: new GraphQLList(DriverType),
resolve: resolver(Terminal.Drivers)
}
})
});
Я получаю ошибку:
Error: Schema must contain unique named types but contains multiple types named "Driver".
я нашел некоторые должности, которые говорят, что упаковка поля в функциональном блоке решат его, но, как вы можете видеть, я сделал это, и это не имело никакого значения.
Тонкая циклическая ссылка должна поддерживаться, да? Мы можем позволить клиенту указать желаемую глубину.
Что я делаю неправильно?
Как обходной путь, я мог удалить homeTerminal
из DriverType и сгладить его примитивными полями, но это довольно неэлегантно.
Это не имеет ничего общего с циклами, но без остальной части кода схемы невозможно определить, в чем проблема. Похоже, что вы каким-то образом добавляете тип драйвера дважды, или вы скопировали тип определения, но забыли что-то менять «имя». – helfer
Если я удаляю '' 'drivers''' из' '' TerminalType '' ', ошибка исчезает. Если я удалю '' 'homeTerminal''' из' '' 'DriverType'', он не исчезнет. Полагаю, это ключ. –
Определенно существует только один '' 'GraphQLObjectType''' с именем« Driver ». –