Rumah  >  Soal Jawab  >  teks badan

Adakah terdapat cara untuk menetapkan prop laluan dalam vue?

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粉919464207P粉919464207211 hari yang lalu575

membalas semua(1)saya akan balas

  • P粉432930081

    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
      }
    }

    balas
    0
  • Batalbalas