我已经使用Redux构建了一些React Native应用程序,并且我在视图/ ui之后传统地建模了我的状态。我已经意识到这不是组织Redux州的最佳方式。
通过最近的一些研究,我现在知道,不将重复数据存储在不同的reducer中是最佳做法,因为更新它们会变得乏味。最好将数据存储在对象中,其中键是id,值是数据对象本身。
这对于每个屏幕/页面上相同的数据都有意义,但如果您的应用在不同的屏幕上使用不同的数据会怎么样?
例如:
我在主屏幕上有产品列表,在类别屏幕上有产品列表。两者都有分页,正在查看产品数据的不同子集。我可以在这里使用选择器方法,只在类别屏幕上选择属于特定类别的产品,但是如何跟踪每个产品的分页数据呢?
如果我在主屏幕上向下滚动并加载一堆产品数据,然后切换到类别屏幕,我已经加载了更多数据。
感谢任何建议,谢谢!
答案 0 :(得分:1)
您应该规范化您的数据(https://github.com/paularmstrong/normalizr),这样您就可以拥有您的redux状态:
{
home: [...list_of_id_products],
category: [...list_of_id_products],
data: [actual_array_of_objects]
}
然后你可以有单独的列表,所有列表都链接到同一组数据