Redux:每个记录一个表单,可能有数千条记录
Redux: one form per record for potentially thousands of records
场景:我有一个资产列表<AssetList />
。当用户向下滚动到列表底部时,我的应用程序将延迟加载剩余的资源。因此,根据用户向下滚动的距离,可以加载数百甚至数千个资源。
问题:单击每个资产<Asset />
将扩展它,并允许用户编辑其字段(名称,内容,…)过渡应该是无缝的。在我看来,每个资产都需要是一个表单。我关心的是1)方法和2)性能。
方法:我在这里采取的方法是使用redux-form
的每个记录使用一种形式。是否有其他替代方案可以强制执行flux架构?这是一个常见的问题吗?
这里的另一种可能的方法是这样修改状态树,每个资产列表有一个表单:
{
assets: {..},
assetForm: {..}
}
点击<Asset />
将触发相应的动作,该动作将级联到减速机,减速机将更新assetForm
状态。
性能:目前为止我最关心的。我不介意页面上有大量的表单,但我担心的是每个表单都与一个redux存储简化程序相关联(或者至少这是我认为utils,如redux-form所做的)。换句话说,可能有数千个reducer会影响性能吗?
如果我的假设不正确,我道歉。我的反应相对较新。回来的。
我认为您对一个相当常见的用例提出了有效的关注。为了解决你的一些问题,我认为你的方法是有效的,除了你可能想要稍微调整一下,以避免创建这么多的表单。我个人没有使用过redux-form
,所以我会让那些有更多经验的人添加更多的答案或评论,但是从更抽象的角度来看,您应该只有在用户单击Asset
时才有表单,因此,我建议只在单击Asset
时呈现表单。这样,您将只拥有用户需要的尽可能多的表单,每个Asset
少于一个。
对于存储的管理,如果你必须初始化每个Asset
的窗体,同样没有特定的redux-form
经验,你不能确保你有一个相当简单的状态结构,只在窗体被初始化时追加到它?也就是说,考虑一个名为assetForms
的状态变量,它是一个对象,其中每个键是Asset
的唯一id,值是具有表单数据的另一个对象。通过这种方式,您只保留尽可能多的状态对象(Assets
)。
希望这能澄清一些困惑,但如果你需要更多的细节,请随意扩展你的问题。
- 边栏按钮和infoWindow是否可能有不同的内容
- 有没有可能有多个有棱角和咕哝的跑步块
- 使用RegExp获取一系列单词,这些单词前后可能有空格,也可能没有空格
- React Native AlertOS api中可能有多个文本字段
- 可能有一个javascript和php的配置文件
- 这个Javascript变量怎么可能有价值
- 这是关闭吗?这可能有什么意义
- JSDoc - 记录可能返回任何类型的方法的正确方法
- 代码只是没有执行,可能有语法问题,或者我可能完全错了
- 余烬数据 - 创建记录在有多重关系中
- 一个有内容的iFrame怎么可能有一个未定义的contentDocument对象
- javascript forEach循环可能有奇怪的输出
- 变量数组中的对象是否可能有2个值
- MongoDB内部的一个查询中可能有多个条件
- EXTJS文本区域中可能有粗体文本
- 在Javascript中,从localStorage检索时是否可能有一个等待动画
- 可能有多个内容脚本为不同的功能
- 是否有可能有完整的CRUD功能在剑道网格与本地数据
- Javascript:有没有可能有一个函数在Object/String..创建
- 是否有可能有一个按钮,可以切换音频的播放状态