【发布时间】:2019-11-24 00:26:54
【问题描述】:
我想在执行 addCourseToOrder 突变后获取 userUnpurchasedCourses 查询,但我无法做到。 在订单中添加一个类后,它会获取 userUnpurchasedCourses 查询,但如果我再次将课程添加到订单中,则查询将不会运行。
我尝试在 then 突变块中执行查询,也尝试了重新获取查询,但重新获取查询的问题是我无法获得查询结果。
这就是我定义突变的方式
const Mutation = async (query, variables, refetch) =>
client.mutate({
mutation: gql`
${query}
`,
variables,
refetchQueries: () => [
{
query: gql`
${refetch?refetch:query}
`,
variables
}
]
});
在这里我使用了这样的突变
let res = await Mutation(classes.addCourseToOrder(), {
userId,
id,
orderId,
amount,
})
if (res.data.addCourseToOrder) {
this.props.getUserUnpurChasedCourses({id})
}
getUserUnpurChasedCourses 将负责运行 userUnpurchasedCourses。
如果您需要更多详细信息,请告诉我
提前致谢。
【问题讨论】:
-
不确定这是否有帮助,但通常您会在突变结束时订阅。 GraphQL 使用 observables。
.subscribe(result => { console.log('result.data in subscribe: ', result.data); ... -
不工作,因为我没有使用 apollo-angular,而且我没有在我的架构中包含任何订阅,所以无论哪种方式,它都不起作用,但感谢您的回复,我会尝试添加订阅
-
嗨@Preston,我找不到重新获取查询的结果,但我只是找到了问题的解决方案。谢谢你的努力
-
请务必发布您的解决方案! :-)
-
好的,我已经发布了解决方案。
标签: redux graphql apollo-client