我试图在GraphQL模式中使用graphql-relay connectionDefinitions,以便在我的变异调用中添加边缘和节点 .
我的项目上下文:我有自定义字段对象,我需要更新并显示下面的变异调用
const CustomFieldDefinition = new GraphQLInputObjectType({
name: 'CustomFieldDefinitions',
fields: {
schem: {
type: GraphQLString
},
deleted: {
type: GraphQLBoolean
},
associatedEntityTypes: {
type: GraphQLString
},
name: {
type: GraphQLString
},
id: {
type: GraphQLID
}
}
})
const { connectionType: Common_CustomFieldDefinitionConnection } =
connectionDefinitions({
name: 'Common_CustomFieldDefinitionEdge',
nodeType: CustomFieldDefinition
});
const createCommon_CustomFieldDefinition = mutationWithClientMutationId({
name: 'CreateCommon_CustomFieldDefinition',
inputFields: {
customFieldDefinition: {type: Common_CustomFieldDefinitionConnection},
clientMutationId: {type: GraphQLString}
},
outputFields: {
customFieldDefinition: {
type: CustomFieldDefinition,
resolve: (obj) => {
return (obj.customFieldDefinitions[obj.customFieldDefinitions.length-1])
}
}
},
mutateAndGetPayload: (params) => {
return Promise.resolve(
updateCustomField(params) // Think of it as a method which update all custom fields.
);
}
});
const Mutation = new GraphQLObjectType({
name: 'Mutation',
fields: {
createCommon_CustomFieldDefinition: createCommon_CustomFieldDefinition
}
});
const mySchema = new GraphQLSchema({
mutation: Mutation
});
module.exports = mySchema;
这是Mutation调用,我试图让它工作
mutation {
createCommon_CustomFieldDefinition(input:{
clientMutationId: "1442",
commonCustomFieldDefinition: {
name: "Vamsi_date",
schem: "Anything",
associatedEntityTypes :"CUSTOMER"
}
}) {
clientMutationId
commonCustomFieldDefinitionEdge{
node{
name
id
schem
}
}
}
}
我在这里面临的问题是每当我启动服务器时都会出现错误
Error: CustomFieldDefinition.customFieldDefinitions field type must be Input Type but got: Common_CustomFieldDefinitionEdgeConnection.
能帮我解决这个问题吗?我认为我在下面的代码中做错了 .
const { connectionType: Common_CustomFieldDefinitionConnection } =
connectionDefinitions({
name: 'Common_CustomFieldDefinitionEdge',
nodeType: CustomFieldDefinition
});