![]() |
1
2
状态的关键是它是不可变的(返回一个新对象,而不是一个修改过的对象)。所以,如果你想修改状态添加新的值到它你需要返回当前状态加上新的值你想添加到以前的状态。在这个例子中使用了spread操作符
但你不能这样做,因为你打破了国家的哲学,新的不可变的对象,而不是修改的:)
在你的例子中,我们需要知道
在角度上,使用
|
![]() |
2
1
|
![]() |
3
0
你说得对,这是 spread operator . 基本上,它提取给定对象的所有属性。另一种写作方式是:
换一种说法
做一个浅薄的拷贝
|
![]() |
4
0
这意味着返回一个包含state所有属性的新对象,并添加/修改3个附加属性。
值得知道的是
这是因为
在只想修改状态的一个属性的情况下,reducer通常使用spread操作符。如果他们这样做了:
为了加强变更检测,有一个很棒的小lib叫做 ngrx-store-freeze |
![]() |
Jihed Ben Zarb · 造型角材料日期选择器 6 月前 |
![]() |
Ajay Kulkarni · 路由器与导航上的路线不匹配 6 月前 |
![]() |
Ole · Angular资源API是否支持为资源添加初始值? 6 月前 |