Я получаю эту ошибку при загрузке, когда пытаюсь загрузить клиент graphiql с Rails 6, особенно желая использовать обозреватель документации.
TypeError: Cannot read property 'types' of undefined
at buildClientSchema (http://localhost:3000/assets/graphiql/rails/application-6f03c7a92432765b0fbe671bfb7a292ee6c37e6704b6e6ac95587e45676bbf72.js:34102:72)
at http://localhost:3000/assets/graphiql/rails/application-6f03c7a92432765b0fbe671bfb7a292ee6c37e6704b6e6ac95587e45676bbf72.js:2795:55
Я попытался удалить свой каталог graphql и заново выполнить rails создать graphql: установить.
Я использую
- rails 6
- graphiql-rails (1.7.0)
- graphql (1.10.5 )
Первоначально я построил его только как API (и удалил ненужные файлы, включая ресурсы), но затем добавил необходимые конфигурации для запуска graphiql в локальной разработке, включая добавление приложения / assetts / config / manifest . js с помощью
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
Мне удалось больше в ней разобраться - я установил точку останова в отладчике chrome для строки 34,102, которая имеет следующий код:
function buildClientSchema(introspection, options) {
// Get the schema from the introspection result.
var schemaIntrospection = introspection.__schema;
// Converts the list of types into a keyMap based on the type names.
var typeIntrospectionMap = (0, _keyMap2.default)(schemaIntrospection.types, function (type) {
return type.name;
});
..... more code ......
Проблема с schemaIntrospection.types
, schemaIntrospection
не определено. Итак, выше, я проверил переменную самоанализа, которая вызывает introspection.__schema
- переменная самоанализа выглядела так:
{"Schema":
{"queryType": {"name":"Query"},
"mutationType": {"name":"Mutation"},
"subscriptionType":null,
.... more JSON ...
Итак, в результате я вместо var schemaIntrospection = introspection.__schema;
установил schemaIntrospection
переменная, используя правильный ключ:
var schemaIntrospection = introspection.Schema;
И это сработало! Для этого конкретного c звоните только: / , как я использовал интерактивный отладчик
Кто-нибудь знает, как я могу это исправить с помощью ruby -graphql / graphiql более постоянно?
Я хочу использовать обозреватель документации
Спасибо!