Reactive form 設定資料是使用patchvalue嗎?

各位先進好,

想要詢問一個操作上的問題
如果使用reactive form,將input資料存在firestore

當我想要編輯的時候,將資料從firestore取得
是只能透過patchvalue的方式,將資料一一存回reactive form嗎?

reactive form 的 formControl 或 FormGroup 可以用 setValue 和 patchValue 兩種方式設定值

請閱讀 Angular.io - reactive form 文件

是~感謝幫我回答!~
我提的問題不夠明確,我想了解的是
如果我的formGroup有20幾個formControl

我從firestore get 資料後,如果要編輯這些資料

是否就只有一個一個將這些資料,使用patchValue放回formControl

再去編輯?
例如:

purchaseArr.controls[i].patchValue({

  goodsSerialNumber: row.numberName,

  goodsName: row.goodName,

  goodsUnit: row.unitForm

})

你給的範例是 FormArray 裡面的 FormGroup? 還是 FormControl. FormArray 也能將值更新回去
不是很懂你卡住的點

Hi
感謝回覆,我的範例的確是我FormArray裡的FormGroup

目前是都有使用patchValue將值更新回去

但因為有20多個input要更新,

在想是不是只有一直使用patchvalue的方式將值更新的方法?

還是有其他方法可以使用

另外,想再問個取值的問題

目前的做法是從B component(dialog)將ID傳回A component

然後在A component使用此ID到firestore取值

接著在A component patchvalue。

=>但其實在B component就有全部的值可以直接傳回去

請問我應該直接透過material dialog的功能,將值全部都傳回去

還是我應該像現在的做法,透過只傳回ID

再由A component使用ID去firestore取值就好?

好奇你 firestore 回傳的結果是什麼?那樣的描述聽起來有點奇怪

hi
我在B component 使用material Table
顯示在firestore上,collection名稱為purchaseData的資料

getData() {
return this.firestore.collection(‘purchaseData’)
}

=> firestore回傳的是很多筆資料,這些資料會在material Table顯示

透過讓使用者從material Table中選擇資料,回傳給A component的

只會是使用者選擇的那一筆。

但因為從B component已經從firestore 取得一次資料

才會在想,是不是該從B component回傳使用者選擇的那一筆資料就好

但目前回傳給A component ,做法是只回傳ID(doc 名稱)

讓 A component透過ID去firestore取值

再patchvalue到A component中的form上

兩種方式都可以.

1個讚

感謝~那我使用讓介面少一點code的方式
根據ID,從firestore再重新抓資料回來就好