vue3响应式的bug(用reative检测不到对象里面单个属性值的变化)

    /**
      * 格式化日期 2023-9-18
      */
    const formatDate = (date) => {
      let nowTime = new Date(date)
      const year = nowTime.getFullYear();
      const month = String(nowTime.getMonth() + 1).padStart(2, '0');
      const day = String(nowTime.getDate()).padStart(2, '0');
      return `${year}-${month}-${day}`;
    };

 如果要给输入框、时间选择器等组件绑定的变量赋初值,那就不能写对象形式,因为reative监测不到对象内部单个属性值的变化,意思就是对象内的单个属性值没有响应式(绑定的变量值不会改变),

//错误示例
let searchForm = reactive({
  beginTime: new Date(currentTime.getTime() - 7 * 24 * 60 * 60 * 1000),
  endTime: new Date(currentTime.getTime() - 1 * 24 * 60 * 60 * 1000)
})

 ref 单个变量才能保证变量的响应式(也可以赋初值,赋初值也还保有响应式)

//停电统计窗体的搜索
    const searchTDTJ = () => {
      //=================================字符串形式的时间也可以比较大小,谁早谁晚=======================================
      if (formatDate(endTime.value) < formatDate(beginTime.value)) {
        ElNotification({
          title: '失败',
          message: '结束日期不能早于开始日期',
          type: 'error',
        })
        return
      }
      autoanalysis()
    };
    
    const onResetTDTJ = () => {
      beginTime.value = new Date(currentTime.getTime() - 7 * 24 * 60 * 60 * 1000)
      endTime.value = new Date(currentTime.getTime() - 1 * 24 * 60 * 60 * 1000)
      autoanalysis()
    };

    const currentTime = new Date();
    //停电统计的表格数据渲染
    let beginTime = ref(new Date(currentTime.getTime() - 7 * 24 * 60 * 60 * 1000)) ;
    let endTime = ref(new Date(currentTime.getTime() - 1 * 24 * 60 * 60 * 1000)) ;
    
    let autoanalysisInfo = ref([])

    //停电自动分析(第一层)的表格数据
    const autoanalysis = () => {
      const param = {
        beginTime: formatDate(beginTime.value),
        endTime: formatDate(endTime.value),
        page: 1,
        limit: 10
      }
      getMalfunctionToExtractConsume(param).then(res => {
        if (res.data.code == 200) {
          let lists = res.data.data.list;
          autoanalysisInfo.value = lists
        }
      })
    }

 

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值