【问题标题】:Cannot read property 'visitExpression' of undefined after copying module复制模块后无法读取未定义的属性“visitExpression”
【发布时间】:2017-06-08 02:23:09
【问题描述】:

我目前正在开发一个带有自定义模块的 Angular2 项目,以保持代码整洁。一切都很好,直到我将此模块复制到另一个项目中。

自从我将模块复制到另一个项目中后,我收到以下错误:Uncaught TypeError: Cannot read property 'visitExpression' of undefined

经过数小时的谷歌搜索,我发现了几个可能的原因,我都测试过(但没有奏效):

  • 路由中的双逗号 (,,)
  • 组件中的空选择器

以下是我尝试的其他一些方法:

  • 查找模块中的每个导入并确保其正确。
  • 使用 Gulp 构建 typescript 文件(构建成功,没有警告/错误)

对于接下来要尝试什么,我不太了解,有什么建议吗?

【问题讨论】:

    标签: javascript angular typescript angular2-routing


    【解决方案1】:

    Routes 数组中任何放错位置的逗号都可能导致此问题

    const authRoutes: Routes = [,        //<--- This was my issue when I faced it
      {path: 'signup', component:  SignupComponent},
      {path: 'signin', component:  SigninComponent},
    ]
    

    【讨论】:

    • 在我的情况下,仍然会弹出错误,并禁用我的所有路由。导致该错误的路线并不总是如此。由于错误是无用的模棱两可,我什至无法调试。
    【解决方案2】:

    当导入中可能有额外的逗号或不同的表达式时,会发生此错误。

    【讨论】:

      【解决方案3】:

      因为逗号放错了,我明白了

       const routes: Routes = [
         { path: 'dashboard', component: DashboardComponent},
         { path: 'login', component: LoginComponent }
       ];
      

      【讨论】:

        猜你喜欢
        • 2015-02-12
        • 2016-02-25
        • 1970-01-01
        • 1970-01-01
        • 2017-05-17
        • 2021-01-17
        • 2022-11-15
        • 2019-06-20
        • 2019-03-20
        相关资源
        最近更新 更多