VueJs 不更新数组
2021-04-06
40
我正在尝试在 vue 上创建一个动态菜单,但是,当我尝试将“active”css 类应用于菜单项时,不起作用,我看到菜单变量“menuFomartado”没有被 VUE 更新,我在想什么?
此代码仅在再次加载页面时有效..
<script>
export default {
data() {
return {
menuFomartado: [],
menu: [
{
icon: "fa fa-chart-area",
pageName: "dashboard",
title: "Dashboard",
role: "admin"
},
{
icon: "fa fa-user-circle",
pageName: "clientes",
title: "Clientes",
role: "admin"
},
]
};
},
computed: {
sideMenu() {
return this.nestedMenu(this.menu);
}
},
watch: {
$route() {
this.menuFomartado = this.sideMenu;
}
},
mounted() {
this.menuFomartado = this.nestedMenu(this.sideMenu);
},
methods: {
nestedMenu(menu) {
menu.forEach((item, key) => {
if (typeof item !== "string" && item.pageName != "") {
menu[key].active = item.pageName == this.$route.name;
}
});
return menu;
}
}
};
</script>
1个回答
基于 @pierre-said 的帖子 Vuejs 和 Vue.set(),更新数组
我刚刚将行
menu[key].active = item.pageName == this.$route.name;
更改为
this.$set(menu[key], "active", item.pageName == this.$route.name);
并且工作正常
cristianormoraes
2021-04-06