有一种叫做作曲的东西。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 :(
有没有办法告诉它只适用于当前状态?或者也许其他一些方法可以重用具有相同逻辑但自定义数据的状态?