コンポジションというものがあります。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です:(
現在の状態でのみ動作するように指示する方法はありますか? または、同じロジックでカスタムデータを使用して状態を再利用するための他のアプローチでしょうか?