You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用自定义Vue组件时如何正确配置Vuetify的v-item-group

问题排查与解决步骤
  • 第一步:修复事件绑定语法错误
    你当前代码中@click.native="toggle;"的写法存在问题,末尾多余的分号会导致仅声明函数引用而不执行,直接修改为以下任意一种写法即可:
<!-- 写法1:直接绑定函数引用 -->
@click.native="toggle"
<!-- 写法2:显式调用函数 -->
@click.native="toggle()"
  • 第二步:适配不同Vue版本的事件规则
    • 如果你使用的是Vue 3,.native修饰符已经被官方移除,该写法会直接失效。此时你需要修改fm-card组件的内部实现,在组件根元素上绑定点击事件并向外抛出:
    <!-- fm-card组件内部根元素 -->
    <div class="fm-card-root" @click="$emit('click', $event)">
      <!-- 组件原有内容 -->
    </div>
    
    同时在父组件中去掉.native修饰符,直接用@click="toggle"绑定即可。
    • 如果你使用的是Vue 2,确认fm-card的根元素没有添加@click.stop等阻止事件冒泡的修饰符,否则原生点击事件无法向外传递到父组件绑定的监听器。
  • 第三步:验证v-item插槽参数是否正常
    你可以在模板中临时输出toggle的类型确认插槽参数是否正确获取:
{{ typeof toggle }}

如果输出结果不是function,说明你当前Vuetify版本的v-item作用域插槽语法存在差异,可查阅对应版本的官方文档调整插槽写法。

  • 第四步:排查元素层级拦截问题
    打开浏览器开发者工具的元素选择器,直接点击页面上的fm-card组件,确认选中的元素是否为绑定了点击事件的fm-card实例。如果选中的是其他透明遮罩层元素,给fm-card添加z-index: 10(数值可根据实际情况调整)即可解决事件拦截问题。
  • 第五步:定位问题归属
    临时将fm-card替换为Vuetify原生的v-card组件绑定点击事件,如果切换功能恢复正常,说明问题完全出自自定义fm-card的事件透传逻辑,优先排查该组件的内部实现即可。

内容的提问来源于stack exchange,提问作者DIEGO ALEJANDRO SARMIENTO CHAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:45:03