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

v-date-picker组件@dayclick事件不生效,无法传递date数据到父组件

根因说明

  • @dayclick 是v-date-picker组件提供的自定义事件,你将事件绑定到了插槽内的原生input元素上,原生input不存在该事件,因此无法触发。
  • 所有v-date-picker暴露的自定义事件,都需要绑定到<v-date-picker>标签上才会生效。

修复代码

你只需要调整事件绑定位置即可,需要向父组件传值时直接在事件回调内$emit即可:

<template>
    <v-date-picker 
      v-model="date"
      @dayclick="onDayClick"
    >
        <template v-slot="{ inputValue, inputEvents }">
            <input class="bg-white px-2 py-1 rounded"
              placeholder="DATE"
              :value="inputValue"
              v-on="inputEvents"
            />
        </template>
    </v-date-picker>
</template>

<script>
export default {
    data() {
        return {
            date: new Date(),
            masks: {
                input: 'YYYY-MM-DD'
            },
        }
    },
    methods: {
        // 回调默认接收选中的日期对象作为入参
        onDayClick(selectedDate) {
            console.log("选中日期", selectedDate);
            // 向父组件传递选中日期
            this.$emit('update:selectedDate', selectedDate)
        }
    }
}
</script>

替代方案

如果不需要监听点击日期的动作,只需要同步选中值到父组件,也可以直接监听date的变化:

export default {
    data() {
        return {
            date: new Date(),
            masks: {
                input: 'YYYY-MM-DD'
            },
        }
    },
    watch: {
        date(newVal) {
            // 直接将变化后的日期值传给父组件
            this.$emit('update:selectedDate', newVal)
        }
    }
}

内容的提问来源于stack exchange,提问作者Joshua Lictan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:51:03