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粉377412096
2023-08-03 19:31:32
<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>
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(), }, }); },