suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Legen Sie Standardwerte für optionale URL-Parameter im Vue Router fest und verfügen Sie gleichzeitig über unabhängige optionale URL-Parameter.

<p>Ich habe die folgende Route</p> <pre class="brush:php;toolbar:false;">export const personRoutes: RouteRecordRaw[] = [ { path: '/person/:id?/:handedSlug?', Name: 'Person', Komponente: () => import('./view/person'), }, ];</pre> <p>Ich habe eine Methode, die Filterbedingungen akzeptiert und die Route aktualisiert: </p> <pre class="brush:php;toolbar:false;">updateRoute(): void { const filter = this.filters; const router = this.$router; router.push({ Name: 'Person', Parameter: { id: filter.getId(), handedSlug: filter.handedSlug(), }, }); },</pre> <p>Das Problem, auf das ich gestoßen bin, besteht darin, dass, wenn die ID null ist und „handed“ festgelegt ist, die zurückgegebene URL „person/handedValue“ lautet und ich „person/all/handedValue“ benötige. <br /><br />Wenn die folgenden Parameter in der URL festgelegt sind, wie werden Standardwerte für optionale Parameter festgelegt? </p><p><br /></p>
P粉377412096P粉377412096485 Tage vor568

Antworte allen(1)Ich werde antworten

  • P粉785905797

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

    我认为目前没有这种方式,但如果有的话,它不能被视为可选项。我建议如果filters.getId()为空,只需简单地传入字符串'all'。

    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(),
        },
      });
    }, 

    Antwort
    0
  • StornierenAntwort