Maison  >  Questions et réponses  >  le corps du texte

Existe-t-il un moyen de définir la prop route dans vue ?

Je souhaite accéder à un onglet spécifique de la page

this.$router.push({
        name: "AdminNotifications",
        params: { tab: "requests" },
      })

Ainsi, dans la page, je peux obtenir les paramètres et définir l'onglet :

mounted() {
    const routeTab = this.$route.params.tab;
    if (routeTab) this.tab = routeTab;
  }

Valide si la page actuelle ne l'est pas AdminNotifications.

Mais en plus, il y a une erreur : NavigationDuplicated:避免了到当前Navigation redondante

Alors... existe-t-il un moyen de simplement définir l'attribut tab sans navigation ?

Merci

P粉919464207P粉919464207163 Il y a quelques jours426

répondre à tous(1)je répondrai

  • P粉432930081

    P粉4329300812024-04-07 09:29:13

    Si vous avez déjà atteint un itinéraire, vous ne pouvez pas y accéder. Mais maintenant que vous y êtes déjà, vous pouvez simplement régler this.tab sur la valeur souhaitée :

    if (this.$route.name === 'AdminNotifications') {
      this.tab = 'requests';
    } else {
      this.$router.push({
        name: "AdminNotifications",
        params: { tab: "requests" },
      })
    }

    Si le composant responsable de la navigation contient tab 的组件不同,您可以将 tab 参数推送到 $route :

    if (this.$route.name === 'AdminNotifications') {
      this.$router.replace({
        params: { tab: "requests" }
      });
    } else {
      this.$router.push({
        name: "AdminNotifications",
        params: { tab: "requests" },
      })
    }

    Dans le composant page, toute valeur vraie de mounted 中的“watcher”替换为适当的监视程序,该监视程序将 tab 动态设置为 $route.params.tab : 

    watch: {
      '$route.params.tab': {
        handler(val) {
          if (val) {
            this.tab = val;
          }
        },
        immediate: true
      }
    }

    répondre
    0
  • Annulerrépondre