在组件prop上复制redux状态的正确方法是什么

时间:2019-03-21 19:00:49

标签: javascript angular redux

我有这样的东西:

  ngOnInit() {
    this.reduxServiceHandle = this.reduxService.subscribe(() =>
      this.reduxUpdates()
    );
  }

  reduxUpdates(): void {
    const newState: TransportationControlTowerState = this.reduxService.getState();
    // Check if feature groups object has changed
    if (!isEqual(this.groups, newState.groups)) {
      ...
      this.groups = newState.groups;
    }
  }

这是我的减速器

case TransportationControlTowerActions.ADD_GROUP:
  return newState = {
    ...state,
    groups: { ...state.groups, [payload.groupId]: payload.group }
  };
  break;

所以,我的问题是:在将状态保存到this.groups道具上之前,是否需要克隆深状态? this.groups = newState.groups;

我认为每次更改redux状态时,我都会返回一个新的状态对象,因此我的本地状态(this.groups)指向旧状态不会有问题。

但是我只想确保我没有遵循任何反模式。

此致

1 个答案:

答案 0 :(得分:0)

官方Redux文档说:

  

状态为只读

     

改变状态的唯一方法是发出一个动作,一个描述发生了什么的对象。

     

这确保了视图和网络回调都不会直接写入状态。相反,他们表达了改变国家的意图。

您可以在https://redux.js.org/introduction/three-principles

上查看完整的核心原则列表。