如何从商店中删除功能
how to remove feature from store
我的主模块(全局)有一个应用程序商店。
但是,我有另一个模块,它是惰性的,并且包含一个特色商店。我们将其命名为 users
模块(使用 /users
路由)。
- 当我访问主页上的应用程序(应用程序模块)时,将加载应用程序商店。
- 当我导航到
/users
路线时,将加载用户模块,以及用户商店(特色商店)
- 此刻,我的商店由
/app-store
和/users-store
计算。
- 我导航外部用户,我想从我的状态中删除 /users-store。
我尝试在我的主要用户组件的 ngOnDestroy
中重新初始化用户状态(因为我不知道如何删除它),但没有触发该操作。
ngOnDestroy() {
this.store.dispatch(fromFeature.resetStoreAction());
}
我需要它,因为模块是按角色访问的,我不想在内存中保持users-store
无用。
您可以使用 removeReducer
删除状态叶子,如果您在执行此操作时用户再次导航到该页面,您可能必须手动重新添加该功能。
有关更多信息,请参阅我的博客 post An experiment, using the global NgRx Store as a local store。
就我个人而言,如果状态绑定到组件的生命周期,我不明白为什么需要删除此状态 - 我认为 NgRx 组件商店会更好地满足您的需求。 https://ngrx.io/guide/component-store
constructor(
private reducers: ReducerManager,
) {
}
ngOnDestroy() {
this.reducers.removeReducer('feature-name');
}
我的主模块(全局)有一个应用程序商店。
但是,我有另一个模块,它是惰性的,并且包含一个特色商店。我们将其命名为 users
模块(使用 /users
路由)。
- 当我访问主页上的应用程序(应用程序模块)时,将加载应用程序商店。
- 当我导航到
/users
路线时,将加载用户模块,以及用户商店(特色商店)- 此刻,我的商店由
/app-store
和/users-store
计算。
- 此刻,我的商店由
- 我导航外部用户,我想从我的状态中删除 /users-store。
我尝试在我的主要用户组件的 ngOnDestroy
中重新初始化用户状态(因为我不知道如何删除它),但没有触发该操作。
ngOnDestroy() {
this.store.dispatch(fromFeature.resetStoreAction());
}
我需要它,因为模块是按角色访问的,我不想在内存中保持users-store
无用。
您可以使用 removeReducer
删除状态叶子,如果您在执行此操作时用户再次导航到该页面,您可能必须手动重新添加该功能。
有关更多信息,请参阅我的博客 post An experiment, using the global NgRx Store as a local store。
就我个人而言,如果状态绑定到组件的生命周期,我不明白为什么需要删除此状态 - 我认为 NgRx 组件商店会更好地满足您的需求。 https://ngrx.io/guide/component-store
constructor(
private reducers: ReducerManager,
) {
}
ngOnDestroy() {
this.reducers.removeReducer('feature-name');
}