types - 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。
推荐阅读
- java - 带有 GUI 的二次公式只返回 NaN
- javascript - 无法向 Leaflet.js 热图添加点
- ios - 如何在编辑时根据 TextField 内容更改标签文本
- javascript - Uncaught (in promise) SyntaxError: json fetch 后输入意外结束
- javascript - 数据模板占位符的资源
- javascript - 使用 `apply` 更改排序功能
- mysql - 连接丢失服务器关闭连接 - 致命错误后无法排队查询
- angularjs - 自定义指令中的 AngularJS 表单在数据绑定后未更新
- javascript - 解析复杂的 CSS 字符串
- node.js - NodeJS 肥皂客户端