在Vue Router中為可選URL參數設定預設值,同時具有獨立的可選URL參數。
P粉377412096
P粉377412096 2023-08-03 19:31:32
0
1
560
<p>我有以下路由</p> <pre class="brush:php;toolbar:false;">export const personRoutes: RouteRecordRaw[] = [ { path: '/person/:id?/:handedSlug?', name: 'Person', component: () => import('./view/person'), }, ];</pre> <p>我有一個方法,接受篩選條件並更新路由:</p> <pre class="brush:php;toolbar:false;">updateRoute(): void { const filters = this.filters; const router = this.$router; router.push({ name: 'Person', params: { id: filters.getId(), handedSlug: filters.handedSlug(), }, }); },</pre> <p>我遇到的問題是,如果id為null,而handed被設定了,回傳的URL是:person/handedValue,而我需要的是person/all/handedValue。 <br /><br />如果URL中後面的參數被設定了,如何為可選參數設定預設值呢? </p><p><br /></p>
P粉377412096
P粉377412096

全部回覆(1)
P粉785905797

我認為目前沒有這種方式,但如果有的話,它不能被視為可選項。我建議如果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(),
    },
  });
}, 
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板