簡體   English   中英

Angular Primeng 組件上的 ExpressionChangedAfterItHasBeenCheckedError

[英]Angular ExpressionChangedAfterItHasBeenCheckedError on Primeng Components

我想問你一個關於我遇到的問題的問題:我目前正在處理一個使用 Primeng(14.2.2,但也有這個問題的 Angular 14)項目的 Angular(15,但也有這個問題)在 14.1.2)。 當我開始快速與之交互時(用鼠標單擊或在焦點后按住 enter),問題是由任何 Primeng 下拉菜單引起的,這導致我出現此錯誤: dropdown error multiselect error

我真的不知道是什么導致了我的項目中的這個錯誤,我在我工作的另一個項目中沒有遇到過它(使用 Angular 12.0.0 和 Primeng 13.3.3,但最近更新到 Angular 14 並且是根本沒有顯示這個問題)。 我嘗試切換 Angular 和 Primeng 版本,但錯誤仍然存在。 有誰知道究竟是什么導致了這個問題? 這可以修復嗎? 如果有人要給我答復,請提前致謝,如果需要,我很樂意添加更多信息

Angular 在更改檢測完成后更改表達式值時拋出 ExpressionChangedAfterItHasBeenCheckedError。 Angular 僅在開發模式下拋出此錯誤

在開發模式下,Angular 在每次更改檢測運行后執行額外檢查,以確保綁定沒有更改。 這會捕獲視圖留在不一致 state 中的錯誤。例如,如果方法或 getter 每次調用時返回不同的值,或者子組件更改其父組件的值,就會發生這種情況。 如果發生其中任何一種情況,則表明變化檢測不穩定。 Angular 拋出錯誤以確保數據始終正確反映在視圖中,從而防止不穩定的 UI 行為或可能的無限循環。

當您添加了模板表達式或開始實施生命周期掛鈎(如 ngAfterViewInit 或 ngOnChanges)時,通常會發生此錯誤。 在處理加載狀態和異步操作時,或者當子組件更改其父綁定時,它也很常見。

點擊閱讀更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM