検索

ホームページ  >  に質問  >  本文

router.currentRoute は、router.currentRoute.value とは異なるルートを表示します。

コンポーネントの現在のルートを取得しようとしていますが、router.currentRoute が奇妙な動作を示しています。

router.currentRoute 予想されるルートを表示します /admin:

リーリー

ただし router.currentRoute.value ルートを表示 /:

リーリー

したがって、router.currentRoute.value.path を使用して現在のルートを表示することはできません。この動作は予期されたものですか?コンポーネントの現在のルートを取得するにはどうすればよいですか?

P粉724256860P粉724256860311日前578

全員に返信(1)返信します

  • P粉317679342

    P粉3176793422024-03-26 20:48:07

    形式から判断すると、コードの効果を観察するために console.log (または同様の) API を使用しているようです。

    ほとんどすべての最新のブラウザでは、(オブジェクトのログ作成時) コンソールにオブジェクトの「遅延」ビューが表示されることに注意してください。

    この例を確認してください (Vue Router で使用されるデータ構造にほぼ準拠しています)

      例を開く
    1. オープン開発ツール - コンソール
    2. ボタンを2回以上クリックしてください
    3. 記録された値を今すぐ​​確認してください
    結果:

    router.currentRoute のすべてのログには、(router.currentRoute.value のログとは対照的に) まったく同じ値が表示されます。 同じことを試しますが、クリックするたびに記録されたオブジェクトを展開します...

    TL:DR 本体を信用しないでください。

    - 表示される値は、console.log の実行時のオブジェクトの値であるとは限りません。 この問題を解決するには、...

    の代わりに

    console.log(JSON.parse(JSON.stringify(obj))) を使用します。

    返事
    0
  • キャンセル返事