【问题标题】:Angular 2 post method gives typescript errorAngular 2 post 方法给出打字稿错误
【发布时间】:2019-11-28 02:20:50
【问题描述】:

我正在使用 Angular 2,我通过服务与 API 进行交互。
我有一个方法要用于发布到 API。

src/app/application/users/create-new-user/create-new-user.component.ts(146,5) 中的错误:错误 TS2554:预期为 0 个参数,但得到了 1 个。

user.ts code

var submitData =
{
  first_name: formData.firstName,
  last_name: formData.lastName,
  email: formData.email,
  password: formData.password,
  address_1: formData.address1,
  address_2: formData.address2,}

his.appService.createUser(submitData).subscribe((result: any) => {
  if (result != '') {

appservice.ts

createUser(): Observable<any> {

  const headers = new HttpHeaders()
    .set('security-token', localStorage.getItem('loginToken'));

  return this.http.post<any>(this.basePath + '/user-groups', { headers })
    .pipe(
      map((response => {
        return response.data;
      }))

【问题讨论】:

  • 添加一些代码让社区可以帮助你
  • 添加一些代码。您的服务可能需要一些参数,但您在调用时没有提供它们
  • 根据您目前提供的信息,您在代码中的某处为不带任何参数的方法提供了参数。
  • @AdritaSharma 你能帮忙吗
  • @AmeerPappay 我使用参数

标签: angular typescript api angular-services


【解决方案1】:

提到的代码中有很多错误。我会根据相关性指出它们。 1.Argument Passed 必须在 createUser 函数中定义。 2.您只是设置标题而不是在 POST 请求中传递任何数据,这是您的主要目的。 3.你不能返回response.data,而只是返回POST方法的输出,因为createUser的返回类型是Observable。

所以编写代码的正确方法必须是:

createUser(data:any): Observable {

const headers = new HttpHeaders().set('security-token', localStorage.getItem('loginToken'));

return this.http.post(this.basePath + '/user-groups', data, {headers: headers}) }

【讨论】:

    【解决方案2】:

    试试这样:

    user.ts

      submitData() {
    
        var submitData =
        {
          first_name: formData.firstName,
          last_name: formData.lastName,
          email: formData.email,
          password: formData.password,
          address_1: formData.address1,
          address_2: formData.address2,
        }
        this.appService.createUser(submitData).subscribe((result: any) => {
          if (result != '') {
            console.log(result)
          }
        })
      }
    

    appservice.ts

     createUser(data:any): Observable<any> {
    
    
        let headers = new HttpHeaders();
        headers = headers.set('security-token', localStorage.getItem('loginToken'));
    
        return this.http.post(this.basePath + '/user-groups', data, { headers })
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-07
      • 2018-01-24
      • 2016-05-01
      • 2020-11-18
      • 2017-10-21
      • 2017-10-10
      • 1970-01-01
      • 2017-09-29
      相关资源
      最近更新 更多