Redux结构建议

时间:2018-05-03 23:11:16

标签: reactjs react-native redux react-redux

我已经使用Redux构建了一些React Native应用程序,并且我在视图/ ui之后传统地建模了我的状态。我已经意识到这不是组织Redux州的最佳方式。

通过最近的一些研究,我现在知道,不将重复数据存储在不同的reducer中是最佳做法,因为更新它们会变得乏味。最好将数据存储在对象中,其中键是id,值是数据对象本身。

这对于每个屏幕/页面上相同的数据都有意义,但如果您的应用在不同的屏幕上使用不同的数据会怎么样?

例如:

我在主屏幕上有产品列表,在类别屏幕上有产品列表。两者都有分页,正在查看产品数据的不同子集。我可以在这里使用选择器方法,只在类别屏幕上选择属于特定类别的产品,但是如何跟踪每个产品的分页数据呢?

如果我在主屏幕上向下滚动并加载一堆产品数据,然后切换到类别屏幕,我已经加载了更多数据。

感谢任何建议,谢谢!

1 个答案:

答案 0 :(得分:1)

您应该规范化您的数据(https://github.com/paularmstrong/normalizr),这样您就可以拥有您的redux状态:

{
   home: [...list_of_id_products],
   category: [...list_of_id_products],
   data: [actual_array_of_objects]
}

然后你可以有单独的列表,所有列表都链接到同一组数据