使用RouteReuseStrategy路由复用策略后,如何在回到缓存的组件中调用某个方法来局部更新?

新手上路,请多包涵

我有个列表页,点击一列进去详情页编辑好后返回到列表页;使用路由复用策略后,能保持列表页的现场保持不变,但保持的也太好了,我想更新单条也更新不了,不知道从哪儿触发。

这是我的复用策略,和大多数一样的配置

import {RouteReuseStrategy, DefaultUrlSerializer, ActivatedRouteSnapshot, DetachedRouteHandle} from '@angular/router';

export class SimpleReuseStrategy implements RouteReuseStrategy {

    _cacheRouters: { [key: string]: any } = {};

    shouldDetach(route: ActivatedRouteSnapshot): boolean {
        return true;
    }
    store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {
        this._cacheRouters[route.routeConfig.path] = {
            snapshot: route,
            handle: handle
        };
    }
    shouldAttach(route: ActivatedRouteSnapshot): boolean {
        return !!this._cacheRouters[route.routeConfig.path];
    }
    retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {
        return this._cacheRouters[route.routeConfig.path].handle;
    }
    shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
        return future.routeConfig === curr.routeConfig;
    }
}

不知道有没大神对RouteReuseStrategy深入了解的,期望能指点一二,谢谢。

阅读 4.2k
2 个回答
新手上路,请多包涵

要么用订阅,要么shouldDetach去掉某些页面的缓存

老哥,这个问题解决了么?可否分享一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏