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

时间:2018-06-04 19:50:06

标签: javascript angular redux ngxs

有作为作品的东西。 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());
  }

}

但问题是在扩展基数为1的所有其他状态上调度LoadGridRows :(

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

0 个答案:

没有答案