在Redux中,分页和过滤的响应是如何工作的



我正在构建一个辅助项目,目前正在使用React开发前端。我有一个关于分页API响应和Redux的问题(这是我第一次使用Redux(。

假设我有一个/invoicesAPI端点,它提供了发票的分页列表。我还可以将查询参数附加到端点,例如?is_paid=false,以过滤这些发票。我应该有一个发票商店和另一个筛选发票商店吗?

我的想法是,对于未经过滤的发票,我只会获得第一页并将其添加到商店,而如果用户想要第二页,我也会将其附加到商店等。因此,如果用户想要返回,则不会提出任何请求。然而,我不确定是否也应该对筛选后的发票进行同样的操作,因为可以进行多种筛选。

您的术语有点偏离。您肯定只想要一个存储实例。但你的商店里可以有很多不同的房产。

您的商店应该包含一个属性,该属性是由唯一发票id键入的所有已加载发票的字典。即使该发票可能出现在许多不同的筛选列表中,您也只需要每个发票有一条记录。这些是你的";实体";。

您还需要知道每个列表中有哪些发票,因此您的商店中应该有另一个包含该数据的属性。这些是你的";集合";。你只需要在这里存储发票的ID。您将从实体属性中获得完整的发票。

通常,我用于集合的关键字是URL的路径。所以你的商店结构看起来像:

{
invoices: {
entities: {
1: {/* complete invoice record */},
2: {/* complete invoice record */},
...
},
collections: {
"/": [99, 98, 97,...],
"/page/2/": [89, 88, 87,...],
"/?is_paid=false": [99, 92, 87, ...],
"/?is_paid=false&someFilter=x": [92, 35, 21, ...],
}
}

相关内容

  • 没有找到相关文章

最新更新