Reactive Form setErrors 觸發問題

請問 reactive form 問題
onchangeDate根據EffDate ,ExpDate 判斷做 setErrors 時,
希望可以在有給預設值時可以在ngOnInit後就觸發驗證, Form 可以顯示錯誤,範例還是要手動編輯EffDate ,ExpDate 才會顯示錯誤訊息

目前有查到 setTimeout 可以觸發…
請問有比較好的做法嗎?

// 加上 setTimeout Work
// setTimeout(() => {
  controlEffDate.setErrors({ comparison: true });
  controlExpDate.setErrors({ comparison: true });
  controlEffDate.markAsTouched();
  controlExpDate.markAsTouched();
// });

在 onChanges 裡的 valueChanges 不要加 startWith

為什麼是用這樣的方式就可以

Kevin 你好,我描述的可能不夠精確,已編輯過問題了,
我是想在form 一建立就可以觸發onChangeDate, 讓表單用effdate ,expdate 初始值做判斷,讓表單顯示錯誤訊息,拿掉startwith 似乎要兩個日期都編輯才會觸法判斷…在麻煩您解答,謝謝

這跟生命週期有關係,其實在 component.ts 的地方該 formControl 狀態已經被改變了,只是沒有顯示到HTML 上,以下我有兩種寫法,讓你參考一下

2個讚