Reactjs 更新Apollo缓存后如何保持React组件状态与Apollo同步

Reactjs 更新Apollo缓存后如何保持React组件状态与Apollo同步,reactjs,graphql,react-apollo,apollo-client,Reactjs,Graphql,React Apollo,Apollo Client,我有一个包含表单数据的组件。使用查询获取数据。有一个变异来变异数据。使用setState将更改的输入值存储在React组件中 现在的问题是,我在Apollo中有一些状态,在React组件中有一些状态——它们一起代表我的状态。我需要这些同步-也就是说,它们应该作为一个原子操作进行更改,并触发一个渲染 我得到的印象是,apollo链接状态是客户机状态的答案,我试图用它重新实现表单。虽然这解决了这个问题,但这是一个更详细的解决方案,性能更差,因此我决定重新使用setState 我现在正在做的一个肮脏的

我有一个包含表单数据的组件。使用
查询
获取数据。有一个
变异
来变异数据。使用
setState
将更改的输入值存储在React组件中

现在的问题是,我在Apollo中有一些状态,在React组件中有一些状态——它们一起代表我的状态。我需要这些同步-也就是说,它们应该作为一个原子操作进行更改,并触发一个渲染

我得到的印象是,
apollo链接状态
是客户机状态的答案,我试图用它重新实现表单。虽然这解决了这个问题,但这是一个更详细的解决方案,性能更差,因此我决定重新使用
setState

我现在正在做的一个肮脏的攻击是写入Apollo缓存,然后更新React组件状态。虽然它似乎适用于此组件及其当前使用的方式,但它可能导致竞争条件,并且状态在两者都更新之前是无效的(假定它们按照预期的顺序完成执行)。现在,我的
变异。更新
方法以以下内容结束:

cache.writeQuery({
    query: GET_TODOS,
    data: nextState
});

setTimeout(() => {
    this.setState({
        changedTodos: {},
    });
}, 500);

这并不理想。如果您能帮助我找到解决此问题的方法,我将不胜感激。

您是否找到了解决此问题的方法?