свойств которого могут быть объектами и массивами, а их значения тоже и так далее рекурсивно. и всё это должно быть реактивным. пробовал и Vue.set, и Object.assign. пытался разобраться с vue-deepset, но это, видимо, не то что мне нужно, либо я не так понял что-то.
вот пример объекта:
{
nav: {
title: "Меню",
items: [
{
url: "/o-tcentre/",
title: "О центре"
},
{
url: "/spetcialistam/",
title: "Специалистам"
},
{
url: "/press-tcentr/",
title: "Пресс-центр",
children: [
{
url: "/press-tcentr/novosti/",
title: "Новости"
}
]
}
]
},
contacts: {
address: "Москва",
phone: "+7 (495) 111-11-11",
phone_url: "tel:+74951111111",
hours: "Пн-Пт: с 9:00 до 17:00"
},
homepage: {
title: "Главная",
url: "/"
},
appointment: {
title: "Запись на приём",
url: "/zapis-na-priem/"
},
analysis: {
title: "Готовность анализов",
url: "/gotovnost-analizov/"
},
search: {
title: "Поиск",
url: "/poisk/"
}
}
если вкратце, то получаю это из rest api, надо записать в store, при смене языка надо получить новые данные и записать их вместо старых.
проблема заключается в том, что теряется реактивность nav.items при полном замещении объекта
можно сделать костылём, выделив nav.items в отдельный объект, но что-то не хочется, к тому же в таком случае надо ещё будет как-то отслеживать nav.items[n].children, который тоже является массивом.
может есть какое-то рекурсивное решение?
создай изначально в STATE эти сущности, вуй будет следить за их реактивностью
Покажи, где у тебя теряется реактивность
Обсуждают сегодня