GraphQL错误:字段类型必须是输入类型,但实际为:
GraphQL错误:字段类型必须是输入类型,但实际为:
这是突变的代码:
const createNotebook = mutationWithClientMutationId ({ name: 'CreateNotebook', inputFields: { token: { type: GraphQLString, }, details: { type: NotebookDetails, }, }, outputFields: { }, async mutateCRNotebook(input, context) { const data = getJSONFromRelativeURL(input.token); }, });
这是突变中details字段使用的模式:
const NotebookDetails = new GraphQLObjectType({ name: 'NotebookDetails', interfaces: [nodeInterface], fields: () => ({ id: globalIdField('NotebookDetails'), description: { type: GraphQLString, description: '...', resolve(obj) { return obj.description; }, }, language: { type: GraphQLString, description: '...', resolve(obj) { return obj.language; }, }, }), });
我在运行这段代码时遇到了错误:
api_1 | Error: CreateNotebookInput.details field type must be Input Type but got: NotebookDetails. api_1 | at invariant (/usr/src/app/node_modules/graphql/jsutils/invariant.js:19:11) api_1 | at /usr/src/app/node_modules/graphql/type/definition.js:698:58 api_1 | at Array.forEach (native) api_1 | at GraphQLInputObjectType._defineFieldMap (/usr/src/app/node_modules/graphql/type/definition.js:693:16) api_1 | at GraphQLInputObjectType.getFields (/usr/src/app/node_modules/graphql/type/definition.js:682:49) api_1 | at typeMapReducer (/usr/src/app/node_modules/graphql/type/schema.js:224:26) api_1 | at typeMapReducer (/usr/src/app/node_modules/graphql/type/schema.js:190:12) api_1 | at Array.reduce (native) api_1 | at /usr/src/app/node_modules/graphql/type/schema.js:217:36 api_1 | at Array.forEach (native) api_1 | at typeMapReducer (/usr/src/app/node_modules/graphql/type/schema.js:210:27) api_1 | at Array.reduce (native) api_1 | at new GraphQLSchema (/usr/src/app/node_modules/graphql/type/schema.js:98:34) api_1 | at Object.(/usr/src/app/src/schema/index.js:39:16) api_1 | at Module._compile (module.js:569:30) api_1 | at Object.Module._extensions..js (module.js:580:10)
我在查询中使用了这种语法,并且它们正常工作。 但是,它们对于突变返回错误。
我的代码有什么错误,我该如何更正?