有store
一个方法被调用getState
,它将返回商店的当前状态。
是什么阻止我的应用程序中某处的代码(意外)修改返回state
的 from store
?
假设我称之为:
let state = store.getState();
state.someProperty = 'fun';
我在getState
对象上找到的实现store
只是返回被每个新操作覆盖的内部状态对象。
const getState = () => state;
在动作/新状态之间,是什么阻止代码修改将被另一个订阅者读取的状态?在我上面的示例中,设置someProperty
为'fun'
将store
在state
属性内持续存在,直到被覆盖。
虽然我显然不应该修改状态,但一个简单的错误可能会将状态绑定到某个(在不知不觉中)修改其输入的组件 - 可能是在角度环境中的 2 路绑定上?
<app-some-component [user]="state"></app-some-component>
不getState()
应该作为其state
模型的克隆来实现吗?
PS 这与 Angular 没有特别的关系——这就是我没有添加标签的原因——让更多不习惯 Angular 的人回答这个问题。