Избегайте государственной мутации в редукторе NgRx - PullRequest
0 голосов
/ 25 октября 2018

Я новичок в 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 голосов
/ 25 октября 2018

Как уже говорилось в комментариях, я думаю, что вы не мутируете напрямую.Если вы хотите быть уверены, вы можете использовать пакет ngrx-store-freeze в режиме разработки, это приведет к ошибке, если вы действительно изменили состояние.

...