避免NgRx Reducer中的状态突变

时间:2018-10-25 14:58:57

标签: javascript angular redux ngrx

我是Redux/NgRx的新手,也是JavaScript的新手。尝试实施样本状态更改。我了解到,当我在化简器中调度动作时,应该从以前的状态创建一个新状态,并更新它的一部分并返回。从而不改变现有状态。但是,在下面的代码中,我总是在开发工具中看到我的状态正在突变,而不是新版本。减速器有什么不对?

减速器:

export interface State {
  transactions: []
}

export function trasactionReducer (state: State, action: txActions.Actions) {

  switch (action.type) {
    case txActions.LOAD_ACCOUNT_TRANSACTION:
      return {...state};

    case txActions.STORE_ACCOUNT_TRANSACTION:
      return {...state, 
        transactions : action.payload
      };

    default:
      console.log("transactionReducer, defaul action triggerred for action: "+ action.type);
      return state;
  }

}

1 个答案:

答案 0 :(得分:0)

正如评论中已经说过的,我认为您不是直接改变状态。 如果您想确定的话,可以在开发人员模式下使用ngrx-store-freeze软件包,如果您对状态进行了更改,则会抛出错误。