当前位置: 首页 > news >正文

小程序 数据监听(observers),避免赋值死循环

在小程序开发过程中,我们通过 observers 监听处理 properties 组件数学列表的过程中,免不了对 当前数据进行处理
在我们对监听的数据进行赋值时候,会造成死循环,其实这个问题在大多数框架中都有这个问题。

  • 小栗子🌰[错误示范]
   properties: {
    playlist: {
      type: Object
    }
  },
  // 数据监听
  observers: {
    ['playlist.playCount'] (count) {
      this.setData({
        ['playlist.playCount']: this._tranNumber(count, 2)
      })
    }
  },
  • 小栗子🌰[正确示范]

data: {

  // 数据监听
  observers: {
    ['playlist.playCount'] (count) {
      this.setData({
        _count: this._tranNumber(count, 2)
      })
    }
  },
    // 避免监听器 赋值死循环
    _count: 0
  },
  • 原因就是 playlist.playCount 这 个数据是监听状态 如果 playlist.playCount 改变就会触发这个方法,如果在setData 中给原数据赋值 他就会不断的触发这个方法,从而导致死循环

  • 所以解决方案就是 在组件 data 中定义一个 变量 接受这个新的值,然后在页面中使用 data中的值 在这里也就是 _count

相关文章:

  • 小程序云开发服务端(云函数-函数式编程)数据库取出数据突破限制
  • 《reactHook+Typescript 从入门到实践》让这篇文章带你飞
  • React 传送门 Portals
  • 前端必须掌握的自动化部署(webhooks)
  • Gatsby精粹,面向未来的blog
  • shell基本指南
  • create-react-app 没有[src] 文件夹(记一次问题)
  • antdv4 升级指北
  • [助力job]React-mode[进阶] (React模式梳理 )
  • 记-vue vue.config.js 配置webpack全局变量
  • 浅谈前端架构自动化-cdn刷新预热自动化脚本
  • 了不起的certbot申请免费SSL证书
  • 记-react-connect中使用forwardRef 问题。
  • ES2020(ES11)新特性
  • 新版 Chrome浏览器在 http协议下无法获取到摄像头、麦克风权限
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • Android系统模拟器绘制实现概述
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Unix命令
  • 飞驰在Mesos的涡轮引擎上
  • 京东美团研发面经
  • 前端知识点整理(待续)
  • 山寨一个 Promise
  • 无服务器化是企业 IT 架构的未来吗?
  • 自制字幕遮挡器
  • 国内开源镜像站点
  • ​【已解决】npm install​卡主不动的情况
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (1)bark-ml
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读11/100)Fast R-CNN
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (已解决)什么是vue导航守卫
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET NPOI导出Excel详解
  • .net 受管制代码
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @Not - Empty-Null-Blank
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [iHooya]2023年1月30日作业解析
  • [iOS]让Xcode 4.2生成的app支持老的iOS设备(armv6)
  • [linux]centos7下解决yum install mysql-server没有可用包
  • [Python从零到壹] 五十三.图像增强及运算篇之直方图均衡化处理
  • [SpringBoot系列]进阶配置
  • [Unity Sentis] Unity Sentis 详细步骤工作流程
  • [超全汇总]数据结构与算法技巧(一)前缀和与差分数组详细刷题笔记附源码思路
  • [代码审计] beecms 4.0 漏洞总结
  • [贰],万能开篇HelloWorld
  • [计网01] 物理层 详细解析笔记,特性
  • [算法基础 ~排序] Golang 实现