0

我正在使用 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)
  })
4

1 回答 1

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 问题以获取更多信息。

于 2017-05-18T06:33:00.547 回答