Angular 14代码重构:合并重复的patchValue调用
解决方案
可以通过梳理commodityDescription的取值逻辑,把所有分支的赋值逻辑合并,最终只调用一次patchValue,重构后的代码如下:
public selectionChange(value: any): void { let commodityDescription = ''; if (value) { commodityDescription = this.initialFormValue.commodityId === value.commodity.commodityId ? this.initialFormValue.commodityDescription : value.commodity.description; } this.loadForm.patchValue({ commodityDescription }); }
逻辑说明
- 先给
commodityDescription设置默认空值,对应原代码中!value的场景 - 当
value存在时,用三元运算符替代原有if-else分支,直接确定commodityDescription的取值 - 最后统一调用一次
patchValue完成表单赋值
这种写法保留了原有的全部业务逻辑,同时消除了重复的patchValue调用,代码更简洁易维护。后续如果需要扩展分支逻辑,也可以在if(value)块内补充,不会增加patchValue的调用次数。
内容的提问来源于stack exchange,提问作者TrevorGoodchild
相关产品推荐
相关产品推荐

