コンポーネントの現在のルートを取得しようとしていますが、router.currentRoute
が奇妙な動作を示しています。
router.currentRoute
予想されるルートを表示します /admin
:
ただし router.currentRoute.value
ルートを表示 /
:
したがって、router.currentRoute.value.path
を使用して現在のルートを表示することはできません。この動作は予期されたものですか?コンポーネントの現在のルートを取得するにはどうすればよいですか?
形式から判断すると、コードの効果を観察するために
console.log
(または同様の) API を使用しているようです。ほとんどすべての最新のブラウザでは、(オブジェクトのログ作成時) コンソールにオブジェクトの「遅延」ビューが表示されることに注意してください。
この例を確認してください (Vue Router で使用されるデータ構造にほぼ準拠しています)
例を開く-
オープン開発ツール - コンソール-
ボタンを2回以上クリックしてください-
記録された値を今すぐ確認してください-
結果:router.currentRoute
TL:DR 本体を信用しないでください。のすべてのログには、(
router.currentRoute.valueのログとは対照的に) まったく同じ値が表示されます。
同じことを試しますが、クリックするたびに記録されたオブジェクトを展開します...- 表示される値は、console.log の実行時のオブジェクトの値であるとは限りません。
この問題を解決するには、...
の代わりにconsole.log(JSON.parse(JSON.stringify(obj)))
を使用します。