Javascript NGXS重用状态(扩展状态类)

Javascript NGXS重用状态(扩展状态类),javascript,angular,redux,ngxs,Javascript,Angular,Redux,Ngxs,有一种东西叫做作文 我希望它能让我为所有网格构建可重用状态。 比如: @State({ 名称:“basegridstate”, 默认值:{ 总数:0, 行:[] } }) 导出类BaseGridState{ @操作(LoadGridRows) loadRows({patchState,dispatch,setState}:StateContext){ 补丁状态({ 总数:2, }); } } 然后我想在每个网格中多次扩展它,以拥有自己的数据 像 @State({ 名称:'cataloggrid

有一种东西叫做作文

我希望它能让我为所有网格构建可重用状态。 比如:

@State({
名称:“basegridstate”,
默认值:{
总数:0,
行:[]
}
})
导出类BaseGridState{
@操作(LoadGridRows)
loadRows({patchState,dispatch,setState}:StateContext){
补丁状态({
总数:2,
});
}
}
然后我想在每个网格中多次扩展它,以拥有自己的数据

@State({
名称:'cataloggrid',
默认值:{
总数:0,
行:[]
}
})
导出类CatalogGridState扩展了BaseGridState{
@操作(LoadCatalogRows)
loadCatalogRows({patchState,dispatch,setState}:StateContext){
补丁状态({
总数:3,
});
分派(新LoadGridRows());
}
}
但问题是在扩展了base one的所有其他状态上调度调用LoadGridRows:(


有没有办法告诉它只在当前状态下工作?或者可能有其他方法使用相同的逻辑重用状态,但使用自定义数据?

你知道吗?这正是我试图解决的问题。这在NGXS中是不可能的。此状态管理库基于CQR,操作不绑定到状态,这意味着所有行动都是全球性的。
@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());
  }

}