menu无法调用updateActiveName和updateOpened

发布于 2022-09-13 01:15:18 字数 791 浏览 22 评论 0

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()
      });
    },
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放肆 2022-09-20 01:15:18

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

 <Menu ref="sideMenu" width="auto" theme="light" :open-names="openItems" :active-name="activeItem">
         <template v-for="(menuItem, menuIndex) in treeModule">
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文