在我的架构中,我有一个类型(ContentBlock),它包含使用Relay标准连接(边,节点等)的嵌套实体(变体)数组。我有一个视图,允许用户指定一些过滤条件,然后将其作为参数传递给ContentBlock类型,并返回一组过滤的变体(过滤很复杂,必须在服务器上完成)。我还有一个不同查询的视图,它不向ContentBlock传递任何参数,因此返回所有嵌套的变体。
当从“全部显示”视图切换到“已过滤”视图时,Apollo会执行过滤后的查询,并且商店会更新,以便每个ContentBlock实体的变体列表现在只包含过滤后的结果。但是,如果我现在返回“全部显示”视图,我仍然只有过滤结果。
我知道当我点击该视图时,我总是可以在“show all”查询中执行.refetch()
,但我想知道是否有人建议我可以更改我的架构,查询或存储,以便我可以保持过滤结果和完整结果,而不必在视图之间切换时返回服务器获取数据。
即使我写这篇文章,我也在考虑在包含过滤的变体ID列表的模式中添加一个字段 - 这样我仍然可以返回所有变体,但只显示已过滤的变体?但是,在我的应用程序中还有其他情况,我真的不需要获取所有这些情况(“show all”是一个管理员视图,大多数用户只会获得过滤集)。
非常感谢任何想法或建议!