我正在Angular 8应用中使用NGXS。当前,所有动作处理程序(带有@Action装饰器的函数)都在state.ts中实现,使得文件的读取方式变得很长。我设法使用@Selector([StateName])语法将选择器分隔在另一个文件中。但是我不能使用@Actions来完成这项工作。从概念上讲,我将能够在5个不同的文件中移动20个左右的动作。
如何使用NGXS做到这一点?
感谢所有答案。
答案 0 :(得分:1)
我发现减轻该问题的最佳方法是将状态分解为较小的块,使其更易于管理和读取,状态结构可以分解为较小的部分还是全部互连在一起?也许考虑使用子状态? https://www.ngxs.io/advanced/sub-states
答案 1 :(得分:0)
您可以将逻辑移至函数并从方法中调用这些函数吗?
// app.state
@State<AppStateModel>({
name: 'app',
defaults: defaultAppState,
})
export class AppState {
@Action(AppInitialized)
testAction(context: StateContext<AppStateModel>, action: AppInitialized) {
return testActionFromOtherFile(context, action);
}
}
// test.action.ts
export function testActionFromOtherFile(context: StateContext<AppStateModel>, action: AppInitialized) {
// do stuff
}