我有一个按状态过滤的GQL阿波罗。 GQL接受“ ACCEPTED”或“ DECLINED”等值。 但是,我注意到当我发送带有空格的“ GOOD LEAVER”之类的过滤器时,它将不再起作用。有什么想法吗? 我收到此错误
Stack: GraphQLError: Variable "$stateIn" got invalid value ["GOOD LEAVER"].
In element #0: Expected type "MemberStateType", found "GOOD LEAVER".
要发送此变量,我正在使用util函数从props获取值,该函数是
stateIn:
getFilterProp('status') &&
getOr([], 'status', selectedFilterOptions).map(({ name }) =>
toUpper(name)
)
我是发送值的100%,因为我可以在“网络”标签中看到它们,当我要使用过滤器“ GOOD LEAVER”时,它只会引发上述错误,否则,它就可以正常工作。
答案 0 :(得分:0)
从上下文来看,我假设您的$stateIn
变量的类型为[MemberStateType]
,而MemberStateType
是一个枚举。如错误所示,GOOD LEAVER
对于此枚举不是有效值。枚举值必须是有效的GraphQL名称,因此它们必须与以下正则表达式匹配:
/[_A-Za-z][_0-9A-Za-z]*/
但是,重点并不是要传递带有空格的名称,而是要传递的值与架构中定义的枚举的可能值不匹配。如果您传递了FWaFJRYyTPx
之类的值或其他无效的枚举值,则会看到类似的错误。
请咨询GraphQL端点的架构,以确定有效的枚举值并相应地转换输入。