element plus中日期控件el-date-picker的change事件不触发
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
免费下载资源
·
问题描述
element plus中日期控件el-date-picker的change事件不触发,一直拿不到变化值,搞了半天发现问题竟然是绑定方式搞错了
下面代码采用的的是ts+语法糖书写
问题代码
<el-date-picker
v-model="cascaderModel.jcrq"
type="date"
placeholder="监测日期"
:size="size"
:change="handelChangeTime"
value-format="YYYY-MM-DD"
/>
<script setup lang='ts'>
const handelChangeTime=(val: any)=>{
console.log(val)
}
</script>
正确代码
<el-date-picker
v-model="cascaderModel.jcrq"
type="date"
placeholder="监测日期"
:size="size"
@change="handelChangeTime"
value-format="YYYY-MM-DD"
/>
<script setup lang='ts'>
const handelChangeTime=(val: any)=>{
console.log(val)
}
</script>
总结就是要用@绑定!!!!!!!!!!!!!!!!!!!
选择日期后报错
Uncaught RangeError: Maximum call stack size exceeded.
我的原因:如下代码,控件绑定的值是父组件传过来的,本身并无定义
<template>
<el-date-picker
v-model="props.jcrq"
style="margin-left: 10px;"
type="date"
placeholder="监测日期(YYYY-MM-DD)"
:size="size"
@change="handelChangeTime"
value-format="YYYY-MM-DD"
/>
</template>
<script setup lang='ts'>
const props = defineProps({
jcrq:{
type:String
},
})
</script>
解决
<template>
<el-date-picker
v-model="jcrq"
style="margin-left: 10px;"
type="date"
placeholder="监测日期(YYYY-MM-DD)"
:size="size"
@change="handelChangeTime"
value-format="YYYY-MM-DD"
/>
</template>
<script setup lang='ts'>
const jcrq=ref('') //定义
const emit = defineEmits(['handelChangeTime']) //注册事件
const handelChangeTime=()=>{
emit('handelChangeTime',jcrq.value) //发出事件
}
</script>
GitHub 加速计划 / eleme / element
10
1
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:5 个月前 )
c345bb45
9 个月前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 9 个月前
更多推荐
已为社区贡献7条内容
所有评论(0)