@kot98

Как использовать computed внутри v-for?

<div ... v-for="(item, index) in list" :key="index">
  {{item.main ? item.main.name : item.default.name}}
</div>


хочу вынести это в computed:
const name = computed(() => {
  return item.main ? item.main.name : item.default.name
})

но тут item-а нет как переменной и я это понимаю. как правильно это реализовать?
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Никак не использовать. Хотите тут computed - вместо одного значения пусть предоставляет массив:

const names = computed(() => list.map(n => (n.main ?? n.default).name));

<div v-for="n in names">
  {{ n }}
</div>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dima9595
@dima9595
Junior PHP
На мой скромный взгляд - тут либо метод создавайте, а не вычисляемое свойство. Либо оставьте вывод в шаблоне.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы