在 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/