GraphQL:为什么在此示例中必须同时在arg和函数中进行分解?

时间:2019-07-01 19:37:09

标签: graphql

在解析器中,如果我编写为:

,则使用lodash方法“ find”
user: (_, { _id }) => find(users, _id ),

我得到空值,而本不该得到,结果是我必须再次破坏:

user: (_, { _id }) => find(users, { _id }),

这是为什么?我以为破坏会发生一次,然后将命名参数传递给函数,如何理解它?

1 个答案:

答案 0 :(得分:1)

后者不是destructuring,而只是object initialization的简写语法。

find(users, { _id })

等同于

find(users, { _id: _id })

它更加简洁。在这两种情况下,您都将创建一个具有名为_id的属性的对象,并将该属性的值设置为现有变量,该变量也恰好名为_id。如果属性名称和变量名称匹配,则可以使用简写语法。