我正在尝试使用update:在执行变异后更新查询。问题是存储区中的查询应用了几个不同的变量,我想更新查询并使用相同的变量返回它。
我在文档中发现,updateQueries有一个选项可以包含queryVariables,queryVariables是执行查询时使用的最后一组变量。
我没有找到任何描述如何从更新内部检索queryVariables或类似内容的内容。
更新内部:我可以使用
lastQuery = Object.keys(store.data.ROOT_QUERY).slice(-1)[0]
它将返回一个类似于“userRecipes({“first”:20,“minTime”:0,“maxTime”:500,“filterType”:“Explore”,“searchTerm”:“})”的结果
我现在这样做的方法是解析该字符串以提取变量,这样我最终可以像这样使用readQuery:
const lastQuery = Object.keys(store.data.ROOT_QUERY).slice(-1)[0]
const searchPosition = lastQuery.search("searchTerm")
const searchTerm = lastQuery.slice((searchPosition + 13),-3)
// also parsing the lastQuery string for filterType, minTime, maxTime
const data = store.readQuery({
query: QUERY_USER_RECIPES,
variables: {
filterType: filterType,
searchTerm: searchTerm,
minTime: minTime,
maxTime: maxTime,
}
});
这不是最好的方法。有没有更简单的方法来访问更新中的变量?
似乎应该有一种方法可以读取存储区中的现有查询和变量,而无需使用readQuery传递变量。
感谢您关注此问题!
版本
阿波罗-client@1.4.0反应-apollo@1.4.2
对于阿波罗2号,但在1号中应该是相同的。x个
在文档中,您可以看到还可以将变量传递给readQuery。
下面是一个示例,用户可以单击BookEvent组件预订事件,如果变异成功,它会自动反映在上面的组件EventDetail中。
在触发突变的组件(BookEvent)中,我将存储和事件ID传递给上部组件(EventDetail)中声明的函数,并传递子组件的道具:
const onClick = () => createEventTicketMutation({
variables: { eventId: event.id },
update: (store, { data: { createEventTicket } }) => {
updateStoreAfterBooking(store, event.id)
},
})
下面是在上部组件中执行缓存更新的函数:
const updateCacheAfterBooking = (store, eventId) => {
const data = store.readQuery({
query: EVENT_DETAIL_QUERY,
variables: { id: eventId },
})
data.eventDetail.bookings += 1
store.writeQuery({
query: EVENT_DETAIL_QUERY,
variables: { id: eventId },
data,
})
}
它是这样传递的<代码>
不要忘记将所需的变量传递给writeQuery。
我正在使用Apollo服务器,试图为一个电子商务应用程序构造一个嵌套查询。我正在查询一个rest api以检索购物篮中的物品。 然而,此请求的响应并不包含我们需要的所有产品信息。因此,我尝试嵌套一个附加查询,使用返回的参数之一作为变量,以获得所需的附加产品信息。 我已经看到了嵌套查询示例,据我所知(我对GraphQL和Apollo尤其陌生),这是GraphQL的一大优点。但是我还没有看到任何嵌套查
问题内容: 我正在尝试在cgo中访问ac struct,但是要这样做 无法确定C.utmpx的名称种类 utmpx是结构 这是执行代码: 在utmpx.h文件中,有 我可以使用_PATH_UTMPX,但在使用UTMPX_FILE时也会收到相同的警告,为什么? 看来我无法访问在.h文件中声明的这些变量,该怎么办? 平台:macOS sirria,go 1.8 问题答案: 我必须定义_GNU_SOUR
问题内容: 我有服务 即使在控制器中也可访问 有人可以解释一下为什么在angular.foreach中无法访问“ this.list”吗?如何访问“ this.list”? 问题答案: (请参阅http://docs.angularjs.org/api/angular.forEach)函数中的最后一个参数是的上下文。因此,您需要这样的东西:
我刚刚开始在Apollo和Vue中使用GraphQL,所以这可能是一个“愚蠢”的问题,但我不知道怎么做。 如何在同一个视图中执行查询以获取一个对象,并使用变异更新它 假设我有一个简单的模式 和vue组件 现在我应该如何编写模板部分?我可以将产品对象链接到输入中的v模型吗? 谢谢你的帮助。
我有一个Apollo Graphql客户端项目。我尝试在查询中使用变异。但它似乎忽略了更新突变,因为查看效果很好。请帮助澄清问题。 我在改变编码方式方面做了很多尝试。在compose中交换变异和查询。更改更新文档的方式。但无法得到它。 我的代码如下:
我有以下代码,我正在尝试决定如何处理错误: 服务器发回一个GraphQL错误对象,并将其发回,使其出现在突变的块中。如果变异成功,组件的数据将使用参数更新,但我看不到处理错误的等价方法。 理想情况下,我希望更新块中的Apollo缓存,但在这一点上,我甚至不能向组件或状态注入道具。 最终的结果是在Register组件上设置一个prop/state,它显示了一个带有条件呈现的错误消息组件。一种方法可以