这是与Javascript有关的语法问题。我跟着这个GraphQL教程:
https://www.howtographql.com/vue-apollo/4-routing/
this。$ apollo.mutate中有一个名为“ update”的回调,该回调采用“ data”参数,如下所示:
update: (store, { data: { createLink } }) => {
const data = store.readQuery({
query: ALL_LINKS_QUERY
})
data.allLinks.push(createLink)
store.writeQuery({ query: ALL_LINKS_QUERY, data })
}
什么是“ {数据:{createLink}}”?这是物体吗?虽然在箭头函数的主体内定义了“ createLink”参数,但未定义“数据”。愚蠢的问题,但是我什至不知道这可以用来研究它(JS初学者)。看起来好像是ES6的销毁,但是我找不到类似的例子。
最佳答案
这是对象分解。它将创建一个名为createLink
的新变量。 ES5中的代码是:
update: (store, params2) {
const createLink = params2.data.createLink
...
}
您可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Nested_object_and_array_destructuring中了解更多信息