NGXS: как мы можем передать всю коллекцию действиям в ngxs? - PullRequest
0 голосов
/ 23 мая 2019

У меня есть коллекция объектов, которые мне нужно передать действиям ngxs.Я могу передать один объект, и он сохраняет состояние и работает нормально, но я не хочу повторять объект вместо того, чтобы передать всю коллекцию?

Я пробовал для одного объекта, он работает нормально, нохотите передать всю коллекцию?

Я пытаюсь вот так, но она не работает:

export class AddAccounts {
  static readonly type = '[Account] Add';
  constructor(public payload: Account[]) { }
}

//this.accounts is a collection of Account[] type.
this.store.dispatch(this.accounts); 

export class AccountStateModel {
  accounts: Account[][];
}

@State<AccountStateModel>({
  name: 'accounts',
  defaults: {
    accounts: []
  }
})

@Selector()
static getAccounts(state: AccountStateModel) {
  return state.accounts;
}

@Action(AddAccount)
add({ getState, patchState }: StateContext<AccountStateModel>, { payload }: 
  AddAccount) {
  const state = getState();
  patchState({
    accounts: [...state.accounts, payload]
  });
}

Есть ли способ передать всю коллекцию в действия?

1 Ответ

0 голосов
/ 27 мая 2019

Я думаю, что это просто ошибка в вашей модели состояния. TutorialStateModel был определен как массив массивов (Tutorial[][]), а не как отдельный массив.

Когда я обновляю ваше определение и исправляю вызов patchState, чтобы соответствовать ему, я вижу обновление пользовательского интерфейса, как и ожидалось. Смотрите ниже:

enter image description here

...