vant_ CountDown倒计时

文章讨论了在使用van-count-down组件时遇到的问题,倒计时在25S到60S之间重复,原因是后端返回的second值超出约定的30s。解决办法是后端返回正确的秒数不超过30秒。
摘要由CSDN通过智能技术生成

语法可以直接在官网查看

需求

后端返回的数据格式如下

[
  {
      "id": 1,
      "btn_text": "+1",
      "second": 0
  },
  {
      "id": 2,
      "btn_text": "+1",
      "second": 0
  }
 ...
]

在这里插入图片描述

之前约定second最多30s, 因此只需要使用秒不需要使用分钟或者是小时。

在此处使用van-count-down 组件来完成的。

<li v-for='item in getCountList' >
  <template v-if="item.second && !item.secondFinish">
    <van-count-down :time="item.second*1000" @finish="item.secondFinish = true">
      <template #default="timeData">
        <span class="block">{{ timeData.seconds }}S</span>
      </template>
    </van-count-down>
  </template>
  <template v-else>{{ item.btn_text }}</template>
</li>
问题

测试时发现 倒计时25S、24S … 0S 之后并没有显示按钮文本“+1”而是显示60S继续开始倒计时

25S、24S … 0S、60S、59S、58S … 0S、60S …

原因

后端返回的second数值为 325(不符合约定数值)

  • 我以为的:
    • [1] 会换算成时分秒 325s为30min25s
    • [2] timeData.seconds获取秒数为25
    • [3] 25S进行倒计时,倒计时结束触发finish方法
  • 实际上
    • [1] 将所有数据换算成秒以60s为一组 如[25s, 60s, 60s…, 60s]
    • [2] 进行倒计时,将所有组倒计时结束才会走finish方法!
      示例: 先对25s进行倒计时,然后对60s进行倒计时 …所有60s倒计时结束,触发finish。
解决

只需要后端返回正确的秒数即可(<=30)。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值