0

我想使用 NodeJS 在 GraphQL Mutation 中传递动态大小的 [{questionId1,value1},{questionId2,value2},{questionId3,value3}] 对象数组

.........
args: {
        input: {
            type: new GraphQLNonNull(new GraphQLInputObjectType({
                name: 'AssessmentStep3Input',
                fields: {
                    questionId:{
                        name:'Question ID',
                        type: new GraphQLNonNull(GraphQLID)
                    },
                    value:{
                        name:'Question Value',
                        type: new GraphQLNonNull(GraphQLBoolean)
                    }
                }
            }))
        }
    },
.........

如何使用给定的代码示例来做到这一点?

谢谢

4

2 回答 2

2

如果您想通过 GraphQL Mutation 传递对象数组,您需要使用“GraphQLList”,它允许您传递具有给定输入的动态大小的数组。

这是示例

........
........
args: {
        input: {
            type: new GraphQLNonNull(GraphQLList(new GraphQLInputObjectType({
                name: 'AssessmentStep3Input',
                fields: {
                    questionId:{
                        name:'Question ID',
                        type: new GraphQLNonNull(GraphQLID)
                    },
                    value:{
                        name:'Question Value',
                        type: new GraphQLNonNull(GraphQLBoolean)
                    }
                }
            }))
            )
        }
    },
........
........

希望能帮助到你。

谢谢

于 2018-09-01T23:57:25.260 回答
0

我刚刚发表了这篇文章,如果您想了解更多详细信息,可以查看一下。这是包含示例的存储库,其中实现了 createUsers 突变https://github.com/atherosai/express-graphql-demo/blob/feature/5-modifiers/server/graphql/users/userMutations.js。你可以看看它是如何实现的,但总的来说上面的答案是正确的。您可以在数组中输入任意数量的对象(如果您没有实现某些项目数量限制,但默认情况下不存在)。

于 2018-09-02T09:19:38.197 回答