如何在Apollo-Client中使用MobX可观察对象

时间:2018-06-29 17:36:44

标签: react-native graphql mobx apollo-client

我正在使用MobX Observables和Apollo-Client。

从Graphql数据设置可观察值的唯一方法似乎是在UNSAFE_componentWillReceiveProps中进行。

所以我要声明可观察的:

@observable object1 = null;

并设置值:

UNSAFE_componentWillReceiveProps(nextProps) {
    if (this.props.data.loading && !nextProps.data.loading && !nextProps.data.error) {
      const {
        object1
      } = nextProps.data.query];
      this.object1 = object1;
    }
  }

当查询中的fetchPolicy设置为network-only时,此方法很好用,但是一旦我尝试使用缓存,它就会失败很长时间,因为第一次访问该屏幕时,它将从网络加载并调用UNSAFE...函数。随后的访问将从缓存(不调用UNSAFE...)中加载,而我的可观察值最终为null。

是否有更好的方法将我的观测值设置为查询数据?

0 个答案:

没有答案