reactjs - Redux 结构建议
问题描述
我已经使用 Redux 构建了一些 React Native 应用程序,并且我传统上根据视图 / ui 对我的状态进行建模。我开始意识到这不是组织 Redux 状态的最佳方式。
通过最近的一些研究,我现在知道最好不要将重复数据存储在不同的 reducer 中,因为更新它们可能会变得乏味。最好将数据存储在对象中,键是 id,值是数据对象本身。
这对于在每个屏幕/页面上都相同的数据是有意义的,但是如果您的应用程序在不同的屏幕上以不同的方式使用数据怎么办?
例如:
我在主屏幕上有一个产品列表,在类别屏幕上有一个产品列表。两者都有分页,并且正在查看产品数据的不同子集。我可以在这里使用选择器方法,并且只在类别屏幕上选择属于特定类别的产品,但是如何跟踪每个产品的分页数据呢?
如果我在主屏幕上向下滚动并加载一堆产品数据,然后切换到类别屏幕,我将加载更多数据。
任何建议表示赞赏,谢谢!
解决方案
您应该规范化您的数据(https://github.com/paularmstrong/normalizr),这样您就可以拥有如下的 redux 状态:
{
home: [...list_of_id_products],
category: [...list_of_id_products],
data: [actual_array_of_objects]
}
那么你可以有单独的列表,所有链接到同一组数据
推荐阅读
- javascript - 未定义的 React JS 变量
- c# - (ASP.net calendar) 搜索特定日期
- c++ - 将 QString 与 wchar_t 一起使用时无法解析的外部符号
- ios - 来自调试器的消息:仅因设备中的内存问题而终止
- javascript - Snap SVG:创建划痕动画
- linux - 自定义 bash 命令在终端中有效,但在脚本中无效
- arrays - 将 for 循环的输出保存在 Bash 的数组中
- stanford-nlp - NER 写完了自定义 NERin stanford NLP
- python - 如何制作多个文件 Python Bot
- python - Django:使用 value_list 查找 id