问题描述: 在做一个有搜索条件的表格列表页时,需要拿到时间字段measureRange进行转换。然后我在if中判断并定义,后面传给后端接口却显示出错。
<h-page-search-item label="下发时间" prop="measureRange">
<el-date-picker
v-model="measureRange"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</h-page-search-item>
if (measureRange) {
const [start, end] = measureRange
const startTime = moment(start).format('yyyy-MM-DD 00:00:00')
const endTime = moment(end).format('yyyy-MM-DD 23:59:59')
}
this.loading = true
api
.handleSubmit({
startTime,
endTime,
})
.then(res => {
const { code, msg } = res
if (Number(code) === 0) {
this.$message.success('成功')
}
})
.finally(() => (this.loading = false))
})
.catch(() => {
this.$message.error('失败')
})
原因分析:const 定义内容离开 if 就不属于 ES6 的块级作用域
解决方法:
const startTime = measureRange ? moment(measureRange[0]).format('yyyy-MM-DD 00:00:00') : ''
const endTime = measureRange ? moment(measureRange[1]).format('yyyy-MM-DD 23:59:59') : ''