Angular 4:使用自定义RouteReuseStrategy导致无法读取未定义的属性“prototype”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular 4:使用自定义RouteReuseStrategy导致无法读取未定义的属性“prototype”相关的知识,希望对你有一定的参考价值。

自定义路由重用策略如下,

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

export class CustomRouteReuseStrategy extends RouteReuseStrategy {
shouldDetach(route: ActivatedRouteSnapshot): boolean { return false; }

    store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void {}

    shouldAttach(route: ActivatedRouteSnapshot): boolean { return false; }

    retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle { return null ; }

    shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
        console.log("inside shouldReuseRoute...");
      return future.routeConfig === curr.routeConfig ;
    }

  }

我得到以下错误

错误:TypeError:无法在__extends(http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:7:73)读取未定义的属性'prototype'

我通读堆栈溢出帖子,无法找到解决方案。一旦这个工作,我想确保我的一个子组件被重新加载而不是重用,然后在项目中附加组件。

我在AppModule中提供

{
    provide: RouteReuseStrategy,
    useClass: CustomRouteReuseStrategy
},

我将扩展更改为实现,并且错误消失,但自定义路由重用不起作用。

我正在使用角度4.3.1

答案

问题是我的工作区结构。当角度为4时,Angular 2版本被错误地拾取。当我纠正这个问题时,它开始正常工作。

以上是关于Angular 4:使用自定义RouteReuseStrategy导致无法读取未定义的属性“prototype”的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 - 验证器自定义函数这是未定义的

在angular 2和bootstrap 4中使用自定义颜色实现进度条

使用 Angular 4 在 datatables.net 中实现自定义搜索

验证未与自定义输入组件一起传播 - Angular 4

在自定义指令 angular 4 中实现 onclick()

如何使用 angular-cli 和 ng-bootstrap 自定义 Bootstrap 4 SCSS 变量?