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

微信小程序如何在公共组件中改变某一个页面的属性值

需求

公共组件A改变页面B的属性isShow的值。

思路

首先目前我不了解可以直接在组件中改变页面的值的方法,所以我通过监听的方式在B页面监听app.js的某一属性值的改变从而改变B页面的值,众所周知app.js的某一属性值是很容易就能更改的。

app.js
  globalData: {isShow: false},//给app.js中被监听的值赋初始值// 使用数据劫持模式监听数据变化observe(obj, key, watch, that) {let val = obj[key];Object.defineProperty(obj, key, {configurable: true,enumerable: true,set: function (value) {watch(val, value, that);val = value;},get: function () {return val;}})}

B页面

  data:{isShow:false},//在onReady中调用app.js的observe,并且传参,第二个参数为要监听的app.js的属性值onReady() {const app = getApp()app.observe(app.globalData, "isShow", this.watch, this);},watch(oldVal, newVal, that) {that.setData({isShow: newVal//监听后得到新的值,并将新的值赋值给页面的这个我们要改变的这个属性})}

A组件

组件中只需要在你需要改变页面值的时候改变一下app.js的所被监听的这个属性的值即可。

getApp().globalData.isShow = true
http://www.lryc.cn/news/364462.html

相关文章:

  • TCP/UDP的区别
  • JavaWeb1 Json+BOM+DOM+事件监听
  • DSP6657 GPIO中断学习(只支持GPIO0-15)
  • vue数字翻盘,翻转效果
  • 【简单讲解TalkingData的数据统计】
  • JMeter的基本使用
  • Oracle和Random Oracle
  • word 无法自动检测拼写
  • docker和docker-compose的安装
  • python的一种集成开发工具:PyCharm开发工具
  • 【匹配线段问题】
  • vue中$bus.$emit和$bus.$on的用法温故
  • 【JavaScript脚本宇宙】优化你的React项目:探索表单库的世界
  • kvm虚拟化
  • 算法训练营第五十天 | LeetCode 198 打家劫舍、LeetCode 213 打家劫舍II、LeetCode 337 打家劫舍III
  • linux学习:进程通信 管道
  • 重大变化,2024软考!
  • DRIVEN|15分的CNN+LightGBM怎么做特征分类,适用于转录组
  • react 怎样配置ant design Pro 路由?
  • DBSCAN 算法【python,机器学习,算法】
  • MySQL之查询性能优化(六)
  • 生成树协议STP(Spanning Tree Protocol)
  • 03-3.1.1 栈的基本概念
  • 排序算法集合
  • pdf文件太大如何变小,苹果电脑压缩pdf文件大小工具软件
  • vite项目打包,内存溢出
  • Matlab解决施密特正交规范化矩阵(代码开源)
  • 自养号测评助力:如何打造沃尔玛爆款?
  • C语言编译与链接
  • 电子电器架构 --- 智能座舱技术分类