recherche

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

Définissez des valeurs par défaut pour les paramètres d'URL facultatifs dans Vue Router tout en disposant de paramètres d'URL facultatifs indépendants.

<p>J'ai l'itinéraire suivant</p> <pre class="brush:php;toolbar:false;">export const personRoutes : RouteRecordRaw[] = [ { chemin : '/person/:id?/:handedSlug?', nom : 'Personne', composant : () => import('./view/person'), }, ];≪/pré> <p>J'ai une méthode qui accepte les conditions de filtrage et met à jour l'itinéraire : </p> <pre class="brush:php;toolbar:false;">updateRoute() : void { filtres const = this.filters; const routeur = this.$router; routeur.push({ nom : 'Personne', paramètres : { identifiant : filtres.getId(), handedSlug : filtres.handedSlug(), }, }); },</pré> <p>Le problème que j'ai rencontré est que si l'identifiant est nul et que handed est défini, l'URL renvoyée est : person/handedValue, et ce dont j'ai besoin est person/all/handedValue. <br /><br />Si les paramètres suivants dans l'URL sont définis, comment définir les valeurs par défaut pour les paramètres facultatifs ? </p><p><br /></p>
P粉377412096P粉377412096520 Il y a quelques jours588

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

  • P粉785905797

    P粉7859057972023-08-04 12:52:00

    Je ne pense pas qu'une telle méthode existe pour le moment, mais si elle existe, elle ne peut pas être considérée comme facultative. Je recommande simplement de transmettre la chaîne « all » si filters.getId() est vide.

    updateRoute(): void {
      const filters = this.filters;
      const router = this.$router;
    
      let routeId = filters.getId()
      if (!routeId && filters.handedSlug()) {
        routeId = 'all'
      }
    
      router.push({
        name: 'Person',
        params: {
          id: routeId,
          handedSlug: filters.handedSlug(),
        },
      });
    }, 

    répondre
    0
  • Annulerrépondre