我正在构建一个副项目,目前正在使用React开发前端。我有一个关于分页API响应和Redux的问题(这是我第一次使用Redux)。
假设我有一个/invoices应用程序接口端点,它提供了一个分页的发票列表。我还可以将查询参数附加到端点,如?is_paid=false,以过滤这些发票。我是否应该有一个用于发票的存储和另一个用于过滤发票的存储?
我的想法是,对于未过滤的发票,我只需要获得第一页并将其添加到商店,然后如果用户想要第二页,我会将其添加到商店,等等。因此,如果用户想要返回,将不会提出任何请求。但是,我不确定是否也应该对过滤后的发票执行同样的操作,因为可以使用多个过滤器。
发布于 2021-05-24 10:27:47
你的术语有点离谱。您肯定只想拥有一个store实例。但是你可以在你的商店里有很多不同的属性。
你的商店应该包含一个属性,它是一个由唯一发票id键入的所有已加载发票的字典。每张发票只需要有一条记录,即使该发票可能出现在许多不同的筛选列表中。这些是你的“实体”。
您还需要知道每个列表中有哪些发票,因此您的商店中应该有另一个包含该数据的属性。这些是你的“收藏品”。您只需要在这里存储发票的ids。您将从entities属性中获得完整的发票。
通常,我用于集合的键是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, ...],
}
}https://stackoverflow.com/questions/67662392
复制相似问题