类型“HttpEvent”上不存在属性“find”。
logIn(signInForm: FormGroup) {
console.log('Login', signInForm);
this._http.get<any>('http://localhost:3000/signUpData', this.signInForm.value).subscribe(result => {
if (this.id === undefined) { return }
this._toast.success(this.signUpData, 'Registered Successfully!');
const userData = result.find((loginData: any) => {
return loginData.email === this.signInForm.email && loginData.password === this.signInForm.password
});
if (this.signUpData) {
alert('Login Successfully!')
this.router.navigate(['dashboard']);
} else {
alert('User not found!')
}
})
}
2条答案
按热度按时间yhived7q1#
错误消息指示
find()
方法未被识别为类型HttpEvent<any>
上的有效方法。这是因为HttpEvent<any>
是表示来自服务器的HTTP响应的泛型类型,并且没有find()
方法。要解决此问题,您需要指定您期望从服务器获得的响应对象的类型。在本例中,您似乎期望的是loginData对象的数组。因此,您可以将响应对象的类型从
HttpEvent<any>
更改为loginData[]
,如下所示:83qze16e2#
看起来你试图发送一个带有请求体的GET请求。这是Angular不支持的,请参阅Angular HttpClient Get method with body。如果你可以改变后端实现,只需切换到POST方法。
虽然规范允许这样的请求,但这不是一个好的做法,这就是为什么一些工具(如Angular)不支持这一点。请参阅:HTTP GET with request body .