Я использую Strapi, Graphql и Nuxt. js, чтобы получить список проектов, а затем отобразить один проект на основе нажатой кнопки, который должен сопровождать фрагмент имени проекта в параметрах маршрута.
Запрос Graphql выглядит следующим образом и работает на игровой площадке, если я передаю слаг в переменной.
query GetProject($slug: String!) {
projects(where: {slug: $slug}) {
id
name
slug
}
}
Запрос переменных
{
"slug": "tunnel-to-new-york"
}
результат
{
"data": {
"projects": [
{
"id": "5ea7904136a59018ac9ffb54",
"name": "Tunnel to New York",
"slug": "tunnel-to-new-york"
}
]
}
}
На странице проектов кнопка
<v-btn to="/projects/`${slug}`">Model + Details</v-btn>
, а в запросе Apollo на странице списка проектов
apollo: {
projects: {
prefetch: true,
query: projectsQuery,
variables() {
return { slug: this.$route.params.slug };
}
}
},
то, что отправляется в адресную строку,
http://localhost:3000/projects/%60$%7Bslug%7D%60
, если я ввожу слаг, например,
http://localhost:3000/projects/tunnel-to-new-york
, то при ошибке отсутствует параметр - он возвращает массив вместо объекта
![enter image description here](https://i.stack.imgur.com/5ON2P.png)
один запрос проекта -
query GetProject($slug: String!) {
projects(where: {slug: $slug}) {
id
name
slug } }
и в _slug. vue
apollo: {
project: {
prefetch: true,
query: projectQuery,
variables () {
return { slug: this.$route.params.slug }
}
}
}
Любые идеи будут оценены!