vant_ CountDown倒计时

语法可以直接在官网查看

需求

后端返回的数据格式如下

javascript 复制代码
[
  {
      "id": 1,
      "btn_text": "+1",
      "second": 0
  },
  {
      "id": 2,
      "btn_text": "+1",
      "second": 0
  }
 ...
]

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

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

javascript 复制代码
<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 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
(⊙o⊙)~哦4 小时前
JavaScript substring() 方法
前端
无心使然云中漫步5 小时前
GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions
前端·javascript
Bug缔造者5 小时前
Element-ui el-table 全局表格排序
前端·javascript·vue.js
xnian_5 小时前
解决ruoyi-vue-pro-master框架引入报错,启动报错问题
前端·javascript·vue.js
麒麟而非淇淋6 小时前
AJAX 入门 day1
前端·javascript·ajax
2401_858120536 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
阿树梢6 小时前
【Vue】VueRouter路由
前端·javascript·vue.js
随笔写7 小时前
vue使用关于speak-tss插件的详细介绍
前端·javascript·vue.js
史努比.8 小时前
redis群集三种模式:主从复制、哨兵、集群
前端·bootstrap·html