Rumah > Soal Jawab > teks badan
Saya mahu menavigasi ke tab tertentu dalam halaman
this.$router.push({ name: "AdminNotifications", params: { tab: "requests" }, })
Jadi dalam halaman saya boleh mendapatkan parameter dan menetapkan tab:
mounted() { const routeTab = this.$route.params.tab; if (routeTab) this.tab = routeTab; }
Sah jika halaman semasa bukan AdminNotifications
.
Tetapi sebagai tambahan, terdapat ralat:
NavigationDuplicated:避免了到当前
Navigasi Berlebihan
Jadi...adakah cara untuk hanya menetapkan atribut tab
tanpa navigasi?
Terima kasih
P粉4329300812024-04-07 09:29:13
Jika anda telah mencapai laluan, anda tidak boleh menavigasi ke laluan itu. Tetapi sekarang anda sudah berada di sana, anda boleh tetapkan this.tab
kepada nilai yang diingini:
if (this.$route.name === 'AdminNotifications') { this.tab = 'requests'; } else { this.$router.push({ name: "AdminNotifications", params: { tab: "requests" }, }) }
Jika komponen yang bertanggungjawab untuk navigasi mengandungi tab
的组件不同,您可以将 tab
参数推送到 $route
:
if (this.$route.name === 'AdminNotifications') { this.$router.replace({ params: { tab: "requests" } }); } else { this.$router.push({ name: "AdminNotifications", params: { tab: "requests" }, }) }
Dalam komponen halaman, sebarang nilai sebenar mounted
中的“watcher”替换为适当的监视程序,该监视程序将 tab
动态设置为 $route.params.tab
:
watch: { '$route.params.tab': { handler(val) { if (val) { this.tab = val; } }, immediate: true } }