Есть вещь, которая называется Композиция.https://ngxs.gitbook.io/ngxs/advanced/composition
И я надеялся, что это позволит мне построить многоразовое состояние для всех моих сеток.Как:
@State<GridStateModel<any>>({
name: 'basegridstate',
defaults: {
total: 0,
rows: []
}
})
export class BaseGridState {
@Action(LoadGridRows)
loadRows({patchState, dispatch, setState}: StateContext<GridStateModel<any>>) {
patchState({
total: 2,
});
}
}
А потом я хотел расширить его много раз, как использовать в каждой сетке, чтобы иметь собственные данные.
Как
@State<GridStateModel<Product>>({
name: 'cataloggrid',
defaults: {
total: 0,
rows: []
}
})
export class CatalogGridState extends BaseGridState {
@Action(LoadCatalogRows)
loadCatalogRows({patchState, dispatch, setState}: StateContext<GridStateModel<any>>) {
patchState({
total: 3,
});
dispatch(new LoadGridRows());
}
}
Но проблема заключается в отправкевызовите LoadGridRows для всех других состояний, которые расширяют базовое: (
Есть ли способ заставить его работать только с текущим состоянием? Или, может быть, какой-то другой подход для повторного использования состояний с той же логикой, но с пользовательскими данными?