如何处理反应阿波罗的连续突变

时间:2018-01-27 15:00:53

标签: javascript reactjs apollo react-apollo

关于如何正确处理Apollo for React中的突变,我有一个小问题。

场合

我想在成功突变后设置组件的状态 - 但在设置状态之前我想执行其他突变(使用@client)。突变返回承诺,所以我的第一次尝试是链承诺,但后来我意识到远程突变可能需要很长时间,用户可以转到另一个页面,当承诺解决我的组件将未安装已经。

目前我考虑了两种解决问题的方法:

  1. 使用 EventEmitter 并在突变完成时发出事件。订阅componentDidMount并取消订阅componentWillUnmount

  2. 使用可取消的承诺 - 这在React docs中推荐(https://reactjs.org/blog/2015/12/16/ismounted-antipattern.html),但它不是标准,看起来有点“hackish”,尤其是在promise链上。

  3. 但我觉得应该有一个更好的方式,提前感谢并度过美好的一天。

0 个答案:

没有答案