Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.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
Angular 角度6 Http订阅问题:属性';用户信息';不存在于类型';答复';_Angular_Http - Fatal编程技术网

Angular 角度6 Http订阅问题:属性';用户信息';不存在于类型';答复';

Angular 角度6 Http订阅问题:属性';用户信息';不存在于类型';答复';,angular,http,Angular,Http,我正在使用angular6 服务台 post(url, body, options): Observable<Response>{ let headers = new Headers(); this.createAuthorizationHeader(headers); return this.http.post(this.endpoint + url, body, httpOptions) .pipe(map(this

我正在使用angular6

服务台

post(url, body, options): Observable<Response>{
        let headers = new Headers();
        this.createAuthorizationHeader(headers);
        return this.http.post(this.endpoint + url, body, httpOptions)
        .pipe(map(this.parseData))
        .pipe(catchError(this.handleError));
    }
login(data) {
        return this.httpClient.post('api/authenticate', data , {
            'Content-Type': 'application/x-www-form-urlencoded'
        });
    }
login.ts

onSubmit() {
        if(this.loginForm.invalid) {
            return;
        }else{
            let data = {
                'email': this.loginForm.value.email,
                'password': this.loginForm.value.password
            }
            this.loginService.login(data).subscribe(
                response => {

console.log(response.userInfo.name);

                this.myRoute.navigate(['dashboard']);
            },
            error =>{
                console.log(error);
            }
        )
    }
}
我收到错误
属性“userInfo”在类型“Response”上不存在。
但在我的http响应中我是
{“status”:true,“userInfo”:{“id”:1,“email”:admin@admin“,”密码“:”123456“,”类型“:”管理员“,”姓名“:”管理员“}”,消息“:”su“}

我甚至厌倦了删除我的map函数,但对于subscribe函数,我仍然会得到相同的错误。我没有遇到这种问题。更新到angular 6后,我收到了这个问题,我甚至更新了“rxjs/operators”中的
import{map,catchError,tap}导入文件

对不起,英语不好。如有任何更新或见解,我们将不胜感激。
谢谢

您可以使用
响应['userInfo']
。默认响应没有名为userInfo的属性,您可以将响应类型转换为给定类型或执行上述操作。

如果我从问题中猜对了,则会在编译时引发错误。您是否正确定义了响应类型?应该是这样的

type Response = {
  status: boolean,
  userInfo: {id: number, email: string, password: number, type: string, name: string},
  message: string};
或者,如果要将post()函数用于其他类型的请求,请在服务中定义一个更通用的post函数,如下所示:

post(url, body, options): Observable<any> { ...
post(url,body,options):可观察的{。。。

停止使用不推荐使用的Http服务。使用HttpClient服务,并阅读其详细指南:您是说您正在获得响应,但无法读取userInfo的属性?@NinjaJami yes。