denisemenov
@denisemenov

Как выводить дочерние элементы из массива в treeview (vuetify)?

У vuetify есть компонент treeview, который позволяет выводить данные по выбранному элементу в отдельном блоке - https://v15.vuetifyjs.com/en/components/treeview#a...
Пока изучал, появился вопрос, как вывести дочерние элементы в этом массиве, на примере вот такого случая:
https://codepen.io/denisemenov/pen/GRRQWEb
Первые три строчки отрабатывают как надо, а дальше печаль.
Как по дочерним элементам вывести эти данные?
  • Вопрос задан
  • 319 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Сделаем функцию, которая будет осуществлять рекурсивный поиск:

const find = (arr, id) =>
  (Array.isArray(arr) ? arr : []).reduce((found, n) =>
    found || (n.id === id ? n : find(n.children, id))
  , null);

И, используя её, перепишем вычисляемое свойство:

selected() {
  return this.active.length
    ? find(this.users, this.active[0])
    : null;
},

UPD. Почитал документацию - оказывается, можно всё сделать гораздо проще. Указываем для treeview параметр return-object - тогда в active вместо ключей будут объекты. Соответственно, искать ничего не надо, вычисляемое свойство сократится до

selected() {
  return this.active[0];
},
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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