2

有一种叫做作曲的东西。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 :(

有没有办法告诉它只适用于当前状态?或者也许其他一些方法可以重用具有相同逻辑但自定义数据的状态?

4

0 回答 0