Angular 8 错误“需要 2-3 个参数,但得到了 1 个”

Angular 8 error “Expected 2-3 arguments, but got 1”

我正在学习 Angular 我的一项服务中有这个场景

agree(id: string) {
    const headers = new HttpHeaders('Content-Type: application/json'); 
    return this.HttpClient.put(`${this.apiUrl}/agree/`, JSON.stringify(id), {headers});
  }

这种方法没有像预期的那样工作......但我意识到传递 userId 不是最佳实践,而是我使用 HttpContext.User 在我的 ASP.Net Core Web API, 所以我改变了方法。

agree() {
    return this.HttpClient.put(`${this.apiUrl}/agreeEula/`);
  }

现在我遇到了这个问题

“预期有 2-3 个参数,但得到了 1 个”

我将不胜感激任何建议,提前致谢

您需要为第二个参数输入 null{}

agree() {
  return this.HttpClient.put(`${this.apiUrl}/agreeEula/`, null);
}

这是HttpClient.put

的签名
put(url: string, body: any, options: { headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: HttpParams | { [param: string]: string | string[]; }; reportProgress?: boolean; responseType: "arraybuffer"; withCredentials?: boolean; }): Observable<ArrayBuffer>

如果正文是可选的,您可以在 url 之后传递 {} 或 null 作为第二个参数。

阅读更多信息 - https://angular.io/api/common/http/HttpClient#put