Vue router - отсутствует параметр для именованного маршрута - PullRequest
0 голосов
/ 02 марта 2019

Как я могу решить эту проблему.

У меня есть кнопка, которая должна связать меня с представлением об объекте, который я создал.Например

   <router-link :to="{ name:DetailView,
                       params:{ id: detail.id}
                     }
                @click="createDetail()> Create Detail
   </router-link>

И в моем компоненте detail устанавливается после запроса бэкэнда:

detail:Detail;

createDetail(){
    makeBackendCall().then(detail=>{
        this.detail=detail
    })
}

Это предупреждение / ошибка, которую я получаю:

[vue-router] missing param for named route "name:DetailView":
Expected "id" to match "[^\/]+?", but received ""

Очевидно, что detail компонент еще не загружен.Что-то мне не хватает?

1 Ответ

0 голосов
/ 02 марта 2019

Вы должны создать обычную кнопку html, а затем вручную перенаправить пользователя после создания объекта бэкэнда (и использовать css для стилизации кнопки)

<button @click="createDetail()> Create Detail
</button>

createDetail(){
    makeBackendCall().then(detail=>{
        this.$router.push({
            name: DetailView,
            params: {
                id: detail.id
            }
        })
    })
}

В приведенном выше коде $router - этоссылка на текущий активный маршрутизатор Vue, , а также есть другие методы, которые можно вызвать на нем, чтобы сделать разные вещи

...