[英]Redux initial state for variable reducer
在我的程序中,我有多个网格,但是它们非常相似,因此我决定为所有这些网格制作一个减速器,以保持我的代码美观和干燥。 当我调度事件以更改存储时,我将网格名称与有效负载一起发送给参数,并且所有内容都会以该网格名称写入存储。
例如:如果我发送事件以更改目录网格的网格标题,则存储将如下所示:(假定用户已经在存储中)
grid: {
catalog: {
headers: {
some data
}
},
users: {
headers: {
some other data
}
}
}
我的问题是如何编写模块化初始状态? 目前,除了网格名称之外,我没有其他初始状态,因为没有它们,我的代码将无法正常工作。 当我需要将某些内容设置为初始状态时,则必须将其包含在我的函数initializeGrid
,该函数initializeGrid
分派一些事件以设置类似于初始状态的内容。
但是没有初始状态,我的减速器会很混乱,因为在几乎每种情况下,我都必须检查是否存在某种状态,或者这是否是第一个项。
只知道我不懒惰,但是我的初始状态将是300行长,并且不会是DRY:/
什么是正确的解决方案?
为什么您需要除{}之外的其他初始状态?
减速器可以只用所需的值更新状态。 如果键存在,则其值将被更新;如果键不存在,则将被添加。 看下面的例子:
let x = { "a" : { "b": 11 }}
let y = { ...x, "c" : { "d": 22 }}
let z = { ...y, "a": { "b": 33 }}
值如下(为了便于阅读,省略了“”):
x: { a: { b: 11 }
y: { a: { b: 11 }, c: { d: 22 }}
z: { a: { b: 33 }, c: { d: 22 }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.