请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于 item 点击关闭 dropdown

目前我是使用 mitt 的方式让 dropdown 监听每个 item 的点击然后关闭 dropdown。

除了使用 mitt 的方式外,是不是没有简便的方式让外层容器监听插槽的组件事件了呢?

正在回答

2回答

张轩 2020-10-09 18:12:15

同学你好 目前来说是这样的 其实原来 vue2 的做法也是监听器的原理 到 vue3 的时候只不过需要自己抽象去实现这个功能 我本人实现这个功能也是用了 mitt,代码在 develop 分支。

0 回复 有任何疑惑可以回复我~
刘小易 2020-10-29 08:15:59
// GlobalHeader.vue
<Dropdown :title="`你好,${user.name}`" ref="dropdownRef">
   <DropdownItem @click="clickItem">新建文章</DropdownItem>
   <DropdownItem @click="clickItem">编辑资料</DropdownItem>
</Dropdown>

const dropdownRef = ref(null);
const clickItem = (e: MouseEvent) => {
  e.preventDefault();
  // ...
  if (dropdownRef.value) {
    (dropdownRef.value as unknown as MethodOptions).closeSelf();
  }
};

// Dropdown.vue
const closeSelf = () => {
  isOpen.value = false;
};

我是这样实现的,点击事件放在了组件上,然后调用Dropdown组件的方法

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信