Vue3.X结合Element Plus 中的日期选择器要完成日期回显的问题
如何实现一下功能呢:
<el-date-picker v-model="year" type="year" @change="changeYear()" />
</div>
<el-date-picker
v-model="month"
type="month"
style="margin-left: 20px"
value-format="MM"
format="M月"
popper-class="due-month"
/>
错误写法:
这样写的话,乍一看是没有什么错误,控制台可以输出year和month的值,但是是number类型。而日期选择器中并不能正确回显,原因是因为类型不正确,选择器需要的是一个string类型。
setup() {
const state = reactive<any>({
year: '',
month: '',
});
onMounted()=>{
//初始化设置year和month的值
state.year = new Date().getFullYear()
state.month = new Date().getMonth()+1
}
}
return{
...toRefs(state),
}
解决方法一:把number类型转换成string类型
setup() {
const state = reactive<any>({
year: '',
month: '',
});
onMounted()=>{
state.year = new Date().getFullYear()+''
state.month = (new Date().getMonth()+1)+''
}
}
解决方法二:安装moment.js插件使用moment来处理时间格式
state.year = moment().format('YYYY');
state.month = moment().format('MM');
以上解决方法!!亲测有效!!!