如何在 GRAPHQL 中设置默认值
How to set a default value in GRAPHQL
我想在角色 属性 中设置一个默认值,但我不知道该怎么做。
这个想法是角色 属性 默认情况下对所有用户都是“BASIC”。
我用快递。
对不起我的英语,我不是本地人,这是代码:
const UserType = new GraphQLObjectType({
name: "User",
description: "User type",
fields: () => ({
id: { type: GraphQLID },
username: { type: GraphQLString },
email: { type: GraphQLString },
displayName: { type: GraphQLString },
phone: { type: GraphQLString },
role: { type: GraphQLString}
}
),
});
谢谢!
这已经在
上得到回答
和官方文档https://graphql.org/graphql-js/type/#example-5
请检查这些内容。
这是通过 默认值 属性 完成的。但这对于您显示的 GraphQLObjectType 是不可能的。
const UserType = new GraphQLObjectType({
name: 'User',
description: 'User type',
fields: () => ({
id: { type: GraphQLID },
username: { type: GraphQLString, defaultValue: 'default string' },
}),
});
Object literal may only specify known properties, and 'defaultValue' does not exist in type 'GraphQLFieldConfig<any, any, { [argName: string]: any; }>'
因此 GraphQLObjectType 没有默认值 属性。
您需要在其他地方解决这个问题,而不是在这里。比如在使用数据的时候,如果你想要的值为空,那么可以使用default代替。
...
...
data.username ?? 'default string'
...
...
但是这个 defaultValue 属性 在哪里工作?它适用于 GraphQLInputObjectType.
例如:
const filter = new GraphQLInputObjectType({
name: "Filter",
fields: () => ({
min: { type: new GraphQLNonNull(graphql.GraphQLInt) },
max: { type: graphql.GraphQLBoolean, defaultValue: 100 },
}),
});
我们可以这样使用它:
...
query: {
products: {
type: new GraphQLList(productTypes),
args: { filter: { type: new GraphQLNonNull(filter) } }, // <-----
resolve: allProducts,
},
},
...
我想在角色 属性 中设置一个默认值,但我不知道该怎么做。 这个想法是角色 属性 默认情况下对所有用户都是“BASIC”。 我用快递。
对不起我的英语,我不是本地人,这是代码:
const UserType = new GraphQLObjectType({
name: "User",
description: "User type",
fields: () => ({
id: { type: GraphQLID },
username: { type: GraphQLString },
email: { type: GraphQLString },
displayName: { type: GraphQLString },
phone: { type: GraphQLString },
role: { type: GraphQLString}
}
),
});
谢谢!
这已经在
和官方文档https://graphql.org/graphql-js/type/#example-5
请检查这些内容。
这是通过 默认值 属性 完成的。但这对于您显示的 GraphQLObjectType 是不可能的。
const UserType = new GraphQLObjectType({
name: 'User',
description: 'User type',
fields: () => ({
id: { type: GraphQLID },
username: { type: GraphQLString, defaultValue: 'default string' },
}),
});
Object literal may only specify known properties, and 'defaultValue' does not exist in type 'GraphQLFieldConfig<any, any, { [argName: string]: any; }>'
因此 GraphQLObjectType 没有默认值 属性。
您需要在其他地方解决这个问题,而不是在这里。比如在使用数据的时候,如果你想要的值为空,那么可以使用default代替。
...
...
data.username ?? 'default string'
...
...
但是这个 defaultValue 属性 在哪里工作?它适用于 GraphQLInputObjectType.
例如:
const filter = new GraphQLInputObjectType({
name: "Filter",
fields: () => ({
min: { type: new GraphQLNonNull(graphql.GraphQLInt) },
max: { type: graphql.GraphQLBoolean, defaultValue: 100 },
}),
});
我们可以这样使用它:
...
query: {
products: {
type: new GraphQLList(productTypes),
args: { filter: { type: new GraphQLNonNull(filter) } }, // <-----
resolve: allProducts,
},
},
...