Я использую vue-router для связи через страницу «index» со списком записей для ресурса, и у меня есть роутер-ссылка для перехода на страницу для отдельной записи. Маршрут работает нормально, но я не могу получить ответ API только для этой записи.
В консоли я получаю 404:
GET http://localhost:8080/this.$route.params.slug 404 (не найдено)
В Devtools мой массив пуст
$ route errors: Array [1] 0: Error gin: Array [0]
router.index.js
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Gins from '@/components/Gins'
import GinsShow from '@/components/GinsShow'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/gins',
name: 'Gins',
component: Gins
},
{
path: '/gins/:slug',
name: 'Gin-Show',
component: GinsShow
}
]
})
компонент / GinsShow.vue
<template>
<div id="Gin-Show">
<div class="container mx-auto pt-16 p-8">
<h1 class="font-black tracking-wide uppercase mb-8">{{gin.name}}</h1>
<div class="flex flex-wrap">
</div>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
name: 'Gin-Show',
data() {
return {
gin: [],
errors: []
}
},
created() {
axios.get('this.$route.params.slug')
.then(response => {
this.gin = response.data
})
.catch(e => {
this.errors.push(e)
})
}
}
</script>
<style>
</style>