Я использую пользовательские поля Keystone JS 'для создания раскрывающегося списка, который заполняется данными в API. Создание настраиваемого поля работает нормально, но когда я пытаюсь сохранить данные на сервере (то есть, когда я позволяю Keystone JS сохранять данные на сервере через API GraphQL), я получаю
[GraphQL error]: Message: Variable "$data" got invalid value "another" at "data.sploof"; Expected type TodoSploofType., Location: [object Object], Path: undefined
Я довольно новичок в GraphQL, но я считаю, что проблема заключается в том, что данные, которые я передаю, another
в поле sploof
, отсутствуют в схеме.
Вместо этого у него есть pending
и processed
, которые приходят, когда я настраивал Keystone JS - здесь вы видите, что поле sploof
имеет пользовательский тип MySelect
с schemaDoc
содержащий options
:
keystone.createList('Todo', {
schemaDoc: 'A list of things which need to be done',
fields: {
name: {type: Text, schemaDoc: 'This is the thing you need to do'},
blip: {type: Text, schemaDoc: 'This is another thing'},
status: {type: Select, options: 'pending, processed'},
sploof: {type: MySelect, options: 'pending, processed'},
},
});
В общем, есть ли способ изменить схемы GraphQL после их создания? То есть, если я хочу отправить данные, форма которых будет определена во время выполнения?