如果在 Angular 中为 Null,则将值设置为 0

Set Value as 0 if its is Null in Angular

我想传递一个变量的值,如果它是 null,然后在 Angular

中调度它时自动将其值设置为 0
    this.myForm = this.formBuilder.group({
        id: [null, Validators.required],
        productPrice: [0],
        finalPrice: [0],
        remarks: [null],
    });
    
    
    onCreate(form: FormGroup) {
      console.log(form.value)
      this.store.dispatch(form.value)
    }

如果参数的左侧为 null

,则可以对参数的右侧 return 使用 nullish 合并运算符
const a = null;
const b = 5;

console.log( a ?? 0 ); // returns 0
console.log( b ?? 0 ); // returns 5

如果您确实想在评估后设置左侧,您也可以将此运算符与赋值一起使用 ??=

一种方法是使用 Array#reduceObject.keys() 函数手动检查值,或者 || 在值为 null 时使用 0undefined.

尝试以下方法

onCreate(form: FormGroup) {
  const value = Object.keys(form.value).reduce((acc, curr) => {
    acc = { ...acc, [curr]: form.value[curr] || 0 };  // update: `curr` must be `[curr]`
    return acc;
  }, Object.create(null));     // update: closing curly brace

  console.log(value);
  this.store.dispatch(value);
}