NGXS:我们如何将整个集合传递给 ngxs 中的操作?
NGXS: how can we pass entire collection to the actions in ngxs?
我有一个对象集合,我需要将其传递给 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]
});
}
有没有办法将整个集合传递给操作?
我认为这只是您的状态模型中的一个错误。
TutorialStateModel
被定义为数组数组 (Tutorial[][]
) 而不是单个数组。
当我更新您的定义并修复 patchState
调用以匹配它时,我可以看到 UI 更新如我所料。见下文:
我有一个对象集合,我需要将其传递给 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]
});
}
有没有办法将整个集合传递给操作?
我认为这只是您的状态模型中的一个错误。
TutorialStateModel
被定义为数组数组 (Tutorial[][]
) 而不是单个数组。
当我更新您的定义并修复 patchState
调用以匹配它时,我可以看到 UI 更新如我所料。见下文: