我正在使用Apollo Client和React创建一个简单的购物车,但是我显示从服务器检索到的数据的总价格没有参考最后发送的请求而是接收到的最后一个请求。它有一种方法使请求同步或类似的东西?或者甚至如何知道最后一次发送突变的回报是什么?
我的代码:
this.props.mutate({ variables: { input: {
lineItems: this.productCart
}}})
.then(({ data }) => {
this.setState({
subtotalPrice : data.manageCheckout.checkout.subtotalPrice
})
}).catch((error) => {
console.warn('there was an error sending the query', error)
})
答案 0 :(得分:0)
我不是100%我跟着你,但我不认为这不是支持。变异查询不等待承诺完成。
存在问题尝试解决此问题的一种方法是使用setTimeout
,因此只有在商店更新后才会更新价格。
this.props.mutate({ variables: { input: {
lineItems: this.productCart
}}})
.then(({ data }) => {
setTimeout(() => {
this.setState({
subtotalPrice : data.manageCheckout.checkout.subtotalPrice
})
)}
}).catch((error) => {
console.warn('there was an error sending the query', error)
})
这是一个黑客,但它对我有用。仍在等待github问题以获取更多信息。