由于我需要差异“结果”,因此如何通过查询和变量来缓存相同的阿波罗查询

时间:2019-04-28 18:14:28

标签: react-apollo apollo-client

因此,我遇到了一个问题,即我使用相同的QUERY返回基于“类型”的“产品”,但是当我返回“产品”列表时,似乎得到了先前的查询类型,等等。 ...

所以,我有: 可以说在这种情况下,“类型”是“鞋子”。

<Query
  query={GET_PRODUCTS_QUERY}
  skip={!type}
  variables={{ filter: { type } }}>

然后我转到另一个列表,输入的是“袜子”。相同的查询,只是不同的“类型”。我注意到很多时候“列表”都不会随着新呼叫而更新。我看到它在网络中熄灭并正确返回,但是react-apollo不会更新列表。

我记得读过我也许会创建IntrospectionFragmentMatcher吗?但是我没有遇到启发式错误,所以也许我只需要执行以下操作即可::

  getProducts {
     ... on socks {
       ...someFragment
     }
     ... on shoes {
       ...someFragment
     }
  }

但是,不确定是否合适。

有什么主意如何确保我使用变量缓存适当的查询? 现在,我必须使用“不缓存”,这似乎很浪费。

0 个答案:

没有答案