【发布时间】:2018-04-23 00:47:56
【问题描述】:
我有一个 GraphQL 客户端请求的对象。
这是一个相当简单的对象:
type Element {
content: [ElementContent]
elementId: String
name: String
notes: String
type: String
createdAt: String
updatedAt: String
}
使用特殊类型ElementContent,它很小,看起来像这样:
type ElementContent {
content: String
locale: String
}
现在,当我在客户端查询此内容时,顶级对象和较低级别对象都有其他属性(如果我尝试按原样克隆主体,则会干扰更新对象);
值得注意的是,GraphQL 似乎在父对象中提供了 __typename 属性,而在子对象中,它们也具有 typename 和 Symbol(id) 属性。
我很想将此对象复制到状态,更新状态,然后克隆状态并将其发送到我的 update 突变。但是,由于 GraphQL 本身提供的未知属性,我遇到了障碍。
我已经尝试过:
delete element.__typename 效果很好,但是我还需要遍历子项(一个动态的对象数组),并且可能还必须删除这些属性。
我不确定我是否在这个等式中遗漏了一些东西,或者我应该只是在代码和循环 + 删除中挣扎(我最初收到错误尝试执行 forEach 循环)。对于我正在尝试做的事情,是否有更好的策略?还是我走在正确的道路上,只需要一些好的循环代码来清除不需要的属性?
【问题讨论】:
标签: javascript ecmascript-6 graphql