You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NgRx SignalStore全局单例模式下登录/登出时的状态重置实现方案问询

NgRx SignalStore全局单例模式下登录/登出时的状态重置实现方案问询

我现在用这样的方式定义全局单例的NgRx SignalStore:

export const MyStore = signalStore(
    { providedIn: 'root' },
    withState(initialValues4Store),
    withMySignalState(),
    // ...其他配置项
);

export function withMySignalState() {
    return signalStoreFeature(
        withState(additionalStates),
        // ...Feature的其他配置
    );
}

这种全局单例的方式在整个应用共享一个实例时完全没问题,但我现在搞不清楚,当用户登录或登出时,该怎么把整个Store(包括SignalStore Feature里的状态)清晰地重置到初始值。

我知道可以在MyStore里写一个logout方法来重置主状态,但问题在于,SignalStore Feature里的状态也需要一起重置,这部分我没找到合适的处理方式。

另外我还在思考:有没有办法既保持全局注入实例的使用方式,又能在用户登出后手动通过Injector创建一个新的Store实例呢?


编辑补充:
我还尝试过下面的写法,但并没有实现Store的重新初始化:

constructor(injector: Injector) {...}

doLogout(): void {
  injector.get(MyStore);
}

备注:内容来源于stack exchange,提问作者LeO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:44:37