在 Angular 5 HttpClient 中,我可以通过这种方式设置 HttpParams()。

const body = new HttpParams()
    .set('email', '[email protected]')
    .set('password', 'pass');
但是当我尝试以这种方式设置 HttpParams() 时。未设置值。
const paramsMap = new Map<any, any>();
paramsMap.set("email", "[email protected]");
paramsMap.set("password", "pass");

paramsMap.forEach((value: any, key: any) => {
    body.set(key, value);
});
为什么它没有设置?我怎样才能以类似的方式做到这一点?

最佳答案

HttpParams 是不可变的,因此每次使用 set() 方法时,它都会返回一个新实例。您可以通过更新引用来解决此问题:

const params = {
  test: 'true'
}

let httpParams = new HttpParams();

Object.keys(params).forEach(k => {
  httpParams = httpParams.set(k, params[k]);
});

console.log(httpParams.get('test'));

关于typescript - 动态设置 HttpParams() 主体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50947382/

10-13 01:43