Chi*_*hil 3 typescript angular-httpclient angular6
在 Angular 5 HttpClient 中,我可以通过这种方式设置 HttpParams()。
const body = new HttpParams()
.set('email', 'test@mail.com')
.set('password', 'pass');
Run Code Online (Sandbox Code Playgroud)
但是当我尝试以这种方式设置 HttpParams() 时。未设置值。
const paramsMap = new Map<any, any>();
paramsMap.set("email", "test@mail.com");
paramsMap.set("password", "pass");
paramsMap.forEach((value: any, key: any) => {
body.set(key, value);
});
Run Code Online (Sandbox Code Playgroud)
为什么它没有设置?我怎样才能以类似的方式做到这一点?
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'));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3502 次 |
| 最近记录: |