1. ホーム
  2. angular

[解決済み] ルーターナビゲートで同じページのngOnInitを呼び出さない

2022-08-23 12:20:15

質問

私は router.navigate を同じページで呼んでいます。この場合 ngOnInit() は呼び出されません。これはデフォルトなのでしょうか、それとも他に何か追加する必要があるのでしょうか?

どのように解決するのですか?

を注入することができます。 ActivatedRoute をサブスクライブし params

constructor(route:ActivatedRoute) {
  route.params.subscribe(val => {
    // put the code from `ngOnInit` here
  });
}

ルーターは、異なるルートに移動したときのみ、コンポーネントを破棄して再作成します。ルートパラメータやクエリパラメータのみが更新され、ルートが同じである場合、コンポーネントの破棄と再作成は行われません。

コンポーネントを強制的に再作成する別の方法として、カスタムの再利用戦略を使用することができます。以下も参照してください。 Angular2 ルーター 2.0.0 で、同じ url を異なるパラメータで読み込むとコンポーネントが再読み込みされない? (実装方法はまだあまり情報がないようです)