错误类型错误:this.route.params.flatMap 不是函数

Posted

技术标签:

【中文标题】错误类型错误:this.route.params.flatMap 不是函数【英文标题】:ERROR TypeError: this.route.params.flatMap is not a function 【发布时间】:2018-11-22 17:38:57 【问题描述】:

我只想过渡到 id。好吧,或者类似的东西(我只是不知道如何解释它)。一般情况下,当你按下按钮转到特定用户时,会出现这样的错误:

ERROR TypeError: this.route.params.flatMap 不是函数

在 UserShowComponent.ngOnInit (user-show.component.ts:31)

在 checkAndUpdateDirectiveInline (core.js:12369)

在 checkAndUpdateNodeInline (core.js:13893)

在 checkAndUpdateNode (core.js:13836)

在 debugCheckAndUpdateNode (core.js:14729)

在 debugCheckDirectivesFn (core.js:14670)

在 Object.eval [as updateDirectives] (UserShowComponent_Host.ngfactory.js?[sm]:1)

在 Object.debugUpdateDirectives [as updateDirectives] (core.js:14655)

在 checkAndUpdateView (core.js:13802)

在 callViewAction (core.js:14153)

如何解决这个问题?

import  Component, OnInit, Input  from '@angular/core';
import  ActivatedRoute, Params  from '@angular/router';
import  Angular2TokenService  from "angular2-token";
import  UserService from '../../../../services/user/user.service';
import  User  from '../../../../models/user.model';

@Component(
  selector: 'app-user-show',
  templateUrl: './user-show.component.html',
  styleUrls: ['./user-show.component.css']
)
export class UserShowComponent implements OnInit 

  id: number;
  routeId: any;

  constructor(
    private authTokenService: Angular2TokenService, 
    private route: ActivatedRoute,
    private servUser: UserService,
  )  

  @Input() user: User;

  ngOnInit() 
    this.routeId = this.route.params.subscribe(
      params => 
        this.id = +params['id'];
      
    )
    let userRequest = this.route.params.flatMap((params: Params) => 
        this.servUser.getUser(+params['id']));
    userRequest.subscribe(response => this.user = response.json());
  


【问题讨论】:

你在使用 Angular 6 和 rxjs 6 吗? 你使用的是什么版本的 angular 和 rxjs? rxjs 5.5.6 角度 5.2.0 @user9934609:如果您发现任何答案对您有帮助,那么请通过练习来为答案投票,因为该开发人员已经投入了他/她的时间来解决您的问题。 【参考方案1】:

只需使用mergeMap insted 或flatMap

import 'rxjs/add/operator/mergeMap';

看看rxjs flatmap missing。

【讨论】:

以上是关于错误类型错误:this.route.params.flatMap 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Vue2 实践揭秘 错误列表

vue之this.$route.query和this.$route.params的使用与区别

vue-router中query和params传参(接收参数)以及$router$route的区别

从直接链接导航时,Nuxt.js `this.$route.params.id` 未定义

构建站点全局导航时(在路由器视图之外),app.vue 中的 this.$route.params 为空

查看渲染错误 (Vue)