我正在使用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。
是否有更好的方法将我的观测值设置为查询数据?