相关疑难解决方法(0)

GraphQL错误字段类型必须是输入类型,但得到:

这是突变:

const createNotebook = mutationWithClientMutationId ({
    name: 'CreateNotebook',
    inputFields: {
        token: {
            type: GraphQLString,
        },

        details: {
            type: NotebookDetails,
        },
    },
    outputFields: {

    },
    async mutateCRNotebook(input, context) {
        const data = getJSONFromRelativeURL(input.token);

    },
});
Run Code Online (Sandbox Code Playgroud)

以下是突变详细信息字段中使用的模式:

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;
            },
        },

    }),

});
Run Code Online (Sandbox Code Playgroud)

我在运行此代码时出错:

api_1    | Error: …
Run Code Online (Sandbox Code Playgroud)

javascript graphql

20
推荐指数
3
解决办法
1万
查看次数

在 GraphQL 中在 Input 和 Type 之间共享公共字段

我想知道是否有办法在 GraphQL 中共享 Input 和 Type 之间的公共字段,这样我就不必在多个地方定义相同的字段集。

例子:

input PersonInput {
    id: String!
    name: String
    address: String
}

type Person {
    id: String!
    name: String
    address: String
}
Run Code Online (Sandbox Code Playgroud)

我知道 Fragment 可能是一个解决方案,但如果我的理解是正确的,使用 Fragment 总是需要您设置一个 ON 条件,使其看起来像这样:

Fragment PersonCommonFields on Person {
    ...
}
Run Code Online (Sandbox Code Playgroud)

似乎没有办法指定“on Person/PersonInput”。

graphql graphql-js graphql-tools

6
推荐指数
1
解决办法
2803
查看次数

标签 统计

graphql ×2

graphql-js ×1

graphql-tools ×1

javascript ×1