使用 HttpParams 和 FromObject 有条件地添加参数并使用变量作为键名

Conditionally adding parameters using HttpParams and FromObject and using a variable for the key name

有没有办法使用 HttpParams 和 fromObject 有条件地添加参数?我尝试在实例化 HttpParams 后添加条件参数,但这没有用:

const params = new HttpParams({
  fromObject : {
    requiredParam: 'requiredParam'
  }
});

if (addOptionalParam)
      params.append('optionalParamKey', 'optionalParamValue');

另外,我可以使用常量变量作为 fromObject 参数的键吗?我试过这个但它不起作用:

  const ConstantVariableForKeyName = 'key';
  const params = new HttpParams({
  fromObject : {
    {{ConstantVariableForKeyName}}: 'paramValue'
  }
});

HttpParams class 是不可变的,因此任何添加或追加操作 returns 都是一个新对象。因此,您的 params 变量不能是 const,请将其更改为 let.

然后,每次需要操作时,只需将参数设置为返回值即可:

let params = new HttpParams({
  fromObject : {
    requiredParam: 'requiredParam'
  }
});
    if (addOptionalParam)
          params = params.append('optionalParamKey', 'optionalParamValue');

关于你的第二个问题,请改用 set 或 append,如下所示:

const constParamKey = 'myKey';
 params = params.append(constParamKey , 'Value');