GraphQL类型的突变变量不知何故永远不会改变



这种行为对我来说已经没有意义了。

我的突变:

export const DEVICE_CREATE_INPUT = gql`
mutation CreateDevice(
$attributeList: String
) {
createDevice(
input: {
attributeList: $attributeList
}
) {
device {
id
_id
}
}
}
`;

我的打字代码:

private createDeviceRequest(
attributeList: string,
) {
return this.apollo.mutate({
mutation: DEVICE_CREATE_INPUT,
variables: {
attributeList
}
});
}

当我试图发送突变(attributeList="(时,它会给我以下错误消息:

zone-evergreen.js:659 Unhandled Promise rejection: Variable "$attributeList" of type "String" used in position expecting type "Iterable!". ; Zone: <root> ; Task: Promise.then ; Value: Error: Variable "$attributeList" of type "String" used in position expecting type "Iterable!".
at new ApolloError (index.js:26)
at Object.next (QueryManager.js:88)
at notifySubscription (Observable.js:135)
at onNotify (Observable.js:179)
at SubscriptionObserver.next (Observable.js:235)
at iteration.js:4
at Array.forEach (<anonymous>)
at iterateObserversSafely (iteration.js:4)
at Object.next (Concast.js:25)
at notifySubscription (Observable.js:135) Error: Variable "$attributeList" of type "String" used in position expecting type "Iterable!".
at new ApolloError (http://localhost:8100/vendor.js:62615:28)
at Object.next (http://localhost:8100/vendor.js:152614:53)
at notifySubscription (http://localhost:8100/vendor.js:136374:18)
at onNotify (http://localhost:8100/vendor.js:136418:3)
at SubscriptionObserver.next (http://localhost:8100/vendor.js:136474:7)
at http://localhost:8100/vendor.js:1059:68
at Array.forEach (<anonymous>)
at iterateObserversSafely (http://localhost:8100/vendor.js:1059:25)
at Object.next (http://localhost:8100/vendor.js:70868:97)
at notifySubscription (http://localhost:8100/vendor.js:136374:18)

我确实用了"Iterable!"在某个时候,但我想切换到字符串,并在前端的任何地方都更改它。如果我现在在前端代码中搜索"Iterable",我就什么也找不到了。这是缓存问题吗?

发生此错误是因为createDevice突变的预期输入类型与提供的类型不匹配。如果您想使用String而不是Iterable,您应该将后端attributeList的typedef从Iterable更改为String。

最新更新