Здесь много проблем ...
Во-первых, kitChen
с большой буквы C
в середине? Я не знаю, почему вы это сделали, но любые будущие разработчики вашего кода будут благодарны вам за то, что вы придерживаетесь правильного написания и стандартного использования заглавных букв.
Аналогично вам нужно разобраться с отступом. Это повсюду. Хотя это может не помешать работе кода, оно не позволяет другим разработчикам понять его.
Следующая проблема - это ваше свойство kitchenImage
. Первоначально массив kitChens
будет пустым, поэтому он ничего не найдет. find
вернет undefined
, а затем попытка доступа к свойству kitchen_type_pic
не удастся. Вам нужно что-то вроде этого:
computed: {
kitchenImage() {
const kitchen = this.kitChens.find(el => el.id == this.selectedKitchen)
return kitchen && kitchen.kitchen_type_pic
}
}
Здесь я предположил, что для kitchenImage
допустимо быть undefined
.
Тогда в вашем шаблоне есть несколько проблем:
<img class="-block w-100" :src="'/../../images/' + kitchenImage()" :alt="'{{ kitChen.kitchen_type}}'" />
kitchenImage
- это вычисляемое свойство, а не метод, поэтому вам не нужно ()
в конце. Также потребуется v-if
для обработки случая, когда kitchenImage
равно undefined
. Возможно, для этого v-if
имеет больше смысла быть выше, мне трудно понять, каким должно быть правильное поведение в этом случае.
Существует также проблема alt
. Я даже не уверен, что он пытается сделать.
Я думаю, что вы стремитесь к чему-то вроде этого:
<img
v-if="kitchenImage"
class="-block w-100"
:src="'/../../images/' + kitchenImage"
:alt="kitChen.kitchen_type"
/>
Однако, чтобы это работало, ему понадобится kitChen.kitchen_type
существовать, и я не вижу ничего в вашем исходном коде, чтобы предположить, что это так. Я подозреваю, что вам нужно вычисленное свойство, подобное kitchenImage
, которое возвращает kitchen_type
вместо kitchen_type_pic
.