Reactjs React中的阿波罗部分数据行为

Reactjs React中的阿波罗部分数据行为,reactjs,apollo-client,Reactjs,Apollo Client,这是我能找到的唯一文档: 我注意到第一次执行返回部分数据的查询时,我得到了数据和错误: const { data, error } = useQuery(QUERY, { errorPolicy: 'all' }); 第二次执行相同的查询时,它从InMemoryCache中读取。阿波罗返回数据,但不再返回错误详细信息。我猜想错误响应没有被缓存。然而,没有办法判断是否出了问题 当部分响应包含错误时,是否有方法告诉Apollo立即使缓存无效,以便下次它离开网络重试 此外,我们是否可以有进一步的

这是我能找到的唯一文档:

我注意到第一次执行返回部分数据的查询时,我得到了
数据
错误

  const { data, error } = useQuery(QUERY, { errorPolicy: 'all' });
第二次执行相同的查询时,它从InMemoryCache中读取。阿波罗返回
数据
,但不再返回
错误
详细信息。我猜想错误响应没有被缓存。然而,没有办法判断是否出了问题

当部分响应包含错误时,是否有方法告诉Apollo立即使缓存无效,以便下次它离开网络重试

此外,我们是否可以有进一步的文档来描述以下情况下的行为:

  • 整个查询成功
  • 当部分成功时
  • 下次重试的备选方案
  • 从本地缓存读取时使用查询变量输出

问题是第二个查询是否成功?如果是这样的话,那么为什么您会期望得到错误消息第二条消息返回数据而不是错误。无法显示错误消息,因为第二次错误为null。现在,第一次调用和后续调用有两个不同的响应值。问题是没有现成的方法告诉缓存下次转到服务器。一种快速的破解方法是保存以前的错误,并在此基础上配置
fetchPolicy
。我期待AC3已经支持的东西。文档中没有太多关于部分数据的内容。如果我没有弄错的话,你似乎希望所有的获取结果都有自己的错误状态,我相信这可能是不可能的,因为如果你不做一些自定义的“hack”,上一个将被最新的重写。但如果你只是想对上一个结果采取行动。也许您正在寻找
notifyOnNetworkStatusChange
。我认为
notifyOnNetworkStatusChange
不适用,因为没有网络调用。缓存已使用。我期望一致性。如果我多次调用同一个查询并得到相同的结果。对于带有错误的
部分响应/数据
,不会发生这种情况。