[解決済み】Angular 2でコンポーネントの再レンダリングを強制する方法は?
2022-04-11 04:11:22
質問
Angular 2でコンポーネントの再レンダリングを強制する方法は? Reduxを使ったデバッグのために、コンポーネントのビューを強制的に再レンダリングしたいのですが、可能ですか?
どのように解決するのですか?
レンダリングは変更検出後に行われます。 強制的に変更を検出し、変更されたコンポーネントのプロパティ値が DOM に伝搬されるようにする(そして、ブラウザがそれらの変更をビューにレンダリングする)には、以下のような方法があります。
-
ApplicationRef.tick()
- Angular 1の
$rootScope.$digest()
-- すなわち、完全なコンポーネントツリーをチェックします。 -
NgZone.run(コールバック)
- と同様
$rootScope.$apply(callback)
-- つまり、Angular 2のゾーン内でコールバック関数を評価します。これは、コールバック関数を実行した後、コンポーネントツリー全体をチェックすることになると思うのですが、確かではありません。 -
ChangeDetectorRef.detectChanges()
- と同様
$scope.$digest()
-- つまり、このコンポーネントとその子コンポーネントのみをチェックする。
をインポートし、インジェクトする必要があります。
ApplicationRef
,
NgZone
または
ChangeDetectorRef
をコンポーネントに追加します。
あなたのシナリオでは、1つのコンポーネントだけが変更された場合、最後のオプションをお勧めします。
関連
-
[解決済み] Angular 4: コンポーネントファクトリが見つかりません。@NgModule.entryComponents に追加しましたか?
-
[解決済み] ActivatedRouteSnapshot の注入ができない。
-
[解決済み] Angular HTMLバインディング
-
[解決済み] Angularで@Input()の値が変更されたときに検出する方法は?
-
[解決済み] Angularでselect要素をオブジェクトにバインドする
-
[解決済み] ExpressionChangedAfterItHasBeenCheckedErrorの説明
-
[解決済み] Angularで変更検知を手動でトリガーする
-
[解決済み] Angularのルーティングされたコンポーネントにデータを渡すにはどうしたらいいですか?
-
[解決済み】AngularでjQueryを使用するには?
-
[解決済み】Angularのファイルアップロード
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】angularJS2プロジェクトでsystemjs.config.jsファイルをどこに置くか/見つけるか?
-
[解決済み] NullInjectorError: MatDialogRef 用のプロバイダがありません
-
[解決済み] Angular2 Final Release - 「Error: AngularにはZone.jsのプロリフィルが必要です"
-
[解決済み] NgModule が見つかりませんでした。NgModule でのインポートをスキップするには skip-import オプションを使用します。
-
[解決済み] イオン4オブザーバブル
-
[解決済み] "エラーです。オーバーレイのプロバイダがありません!"
-
[解決済み] ローカルのワークスペース・ファイル('angular.json')が見つかりませんでした。しかし、同じコードが別のコンピュータで動作します
-
[解決済み] Angular InjectionTokenが「No provider for InjectionToken」をスローします。
-
[解決済み] Angularで変更検知を手動でトリガーする
-
[解決済み] チェックした後に○○の表現が変わっている