Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误类型错误:this.route.params.flatMap不是函数_Javascript_Angular - Fatal编程技术网

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

Javascript 错误类型错误:this.route.params.flatMap不是函数,javascript,angular,Javascript,Angular,我只是想转换到id。嗯,或者类似的东西(我只是不知道如何解释)。通常,当您按下按钮转到特定用户时,会出现以下错误: 错误类型错误:this.route.params.flatMap不是函数 在UserShowComponent.ngonit(user show.component.ts:31) 在checkAndUpdateDirectiveInline(core.js:12369) 在checkAndUpdateNodeLine(core.js:13893) 在checkAndUpdateNo

我只是想转换到id。嗯,或者类似的东西(我只是不知道如何解释)。通常,当您按下按钮转到特定用户时,会出现以下错误:

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

在UserShowComponent.ngonit(user show.component.ts:31)

在checkAndUpdateDirectiveInline(core.js:12369)

在checkAndUpdateNodeLine(core.js:13893)

在checkAndUpdateNode(core.js:13836)

在debugCheckAndUpdateNode(core.js:14729)

在debugCheckDirectivesFn(core.js:14670)

在Object.eval[作为updateDirectives](UserShowComponent\u Host.ngfactory.js?[sm]:1)

在Object.debugUpdateDirectives[作为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());
  }

}

只需使用
mergeMap
代替
flatMap

import 'rxjs/add/operator/mergeMap';

看一看。

mergeMap
代替
flatMap

import 'rxjs/add/operator/mergeMap';

看看。

您使用的是Angular 6和rxjs 6吗?您使用的是Angular和rxjs的哪个版本?rxjs 5.5.6 Angular 5.2。0@user9934609:如果您发现任何答案都有帮助,那么请进行练习,对答案进行投票,因为开发人员已经投入了他/她的时间来解决您的问题。您是否使用Angular 6和rxjs 6?Angular的哪个版本你用的是rxjs吗?rxjs 5.5.6 5.2。0@user9934609:如果您发现任何答案都是有帮助的,那么请进行练习,对答案进行投票,因为开发人员已经投入了他/她的时间来解决您的问题。