Как правильно создать копию избыточного состояния в компоненте? - PullRequest
0 голосов
/ 21 марта 2019

У меня есть что-то вроде этого:

  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;

Я думаю, что каждый раз, когда я изменяю состояние избыточности, я возвращаю новый объект состояния, чтобы не былопроблема с моим локальным состоянием (this.groups), указывающим на старое состояние.

Но я просто хочу убедиться, что я не следую никаким анти-шаблонам.

С уважением,

1 Ответ

0 голосов
/ 21 марта 2019

Официальные документы Redux говорят:

Состояние только для чтения

Единственный способ изменить состояние - это создать действие, объект, описывающий произошедшее.

Это гарантирует, что ни представления, ни сетевые обратные вызовы никогда не будут писать напрямую в состояние. Вместо этого они выражают намерение преобразовать государство.

Полный список основных принципов вы можете посмотреть здесь https://redux.js.org/introduction/three-principles

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...