menu无法调用updateActiveName和updateOpened

新手上路,请多包涵

Menu菜单是动态生成的,在created和watch里面调用updateActiveName和updateOpened,总是报无定义。
image.png

<Menu  ref="sideMenu" width="auto" theme="light"  v-for="(menuItem, menuIndex) in treeModule" :key="menuIndex" :open-names="openItems" :active-name="activeItem">
created() {
    this.openItems = [4];
    this.activeItem='4-1';
    this.$nextTick(() => {
      this.$refs.sideMenu.updateOpened()
      this.$refs.sideMenu.updateActiveName()
    });
  },
  watch: {
    // 监听展开的子目录,更新
    openItems() {
      this.openItems = [0];
      this.activeItem='0-1';
      this.$nextTick(() => {
        this.$refs.sideMenu.updateActiveName()
        this.$refs.sideMenu.updateOpened()
      });
    },
}
阅读 2.7k
1 个回答
✓ 已被采纳新手上路,请多包涵

已解决。
Menu的循环不能写在<Menu>中,这样导致生成menu是一个Array对象。
改为

 <Menu ref="sideMenu" width="auto" theme="light" :open-names="openItems" :active-name="activeItem">
         <template v-for="(menuItem, menuIndex) in treeModule">
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进