Angular: Change detection not triggered
Angular変更検知が動作しない問題の解決方法
概要
Angularの変更検知が実行されず、UIが更新されない問題です。
症状
データを更新してもビューが更新されない
原因
- OnPush戦略: 参照が変わらないオブジェクト変更
- Zone外の非同期処理: setTimeoutやイベント
- 外部ライブラリ: Zone.jsに認識されない処理
- ミューテーション: 配列やオブジェクトの直接変更
解決策
1. 新しい参照を作成
| |
2. ChangeDetectorRefを使用
| |
3. NgZone.run()を使用
| |
4. async pipeを使用
| |
よくある間違い
- OnPushでオブジェクトをミューテート
- runOutsideAngularで非同期処理後に戻らない
Angular の他のエラー
この記事は役に立ちましたか?