搜索
博主信息
博文 25
粉丝 0
评论 0
访问量 49375
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
小程序全局变量的使用
程先生的博客
原创
2339人浏览过

在微信小程序开发的过程中,博主一度被app.js中全局变量的设置,以及在page中重新赋值,却未在项目中所有page中动态响应这一问题困扰了很久。博主把本人遇到的问题叙述一下:


博主的错误示例

app.js


App({

    data:{

        globaldata: 1, // 用于测试的全局变量

    }

})

page中:


const app = getApp();

 

Page({

    data: {

        fulldata: app.data, // 拿到全局变量

    },

    changeData: function(){

        this.setData({

            'fulldata.globaldata': 2

        })

    }

})

当触发changeData这一方法时,当前页面使用  fulldata.globaldata 这一数据时,在当前page中 取到的globaldata值 确实发生了动态的更新,修改为了2;


但是!在 app.js中的globaldata值它依旧是为1,并且其他页面中使用app.js中globaldata时,其值也为1,这是什么原因造成的呢?

在page中  我们使用 this.setData赋值时,this的执行上下文是page本身,其setData也只能修改当前page中data里面的值,这也就是我们为什么不能在页面中使用 this.setData修改全局变量的值的原因了。


如果想在页面中修改全局变量值,以及在页面中动态使用全局变量值,在赋值的时候我们加一条就能达到预期目标:如下


const app = getApp();

 

Page({

    data: {

        fulldata: app.data, // 拿到全局变量

    },

    changeData: function(){

        this.setData({

            'fulldata.globaldata': 2

        })

        app.data.globaldata = 2;

    }

})

加一条: app.data.globaldata = 2;  即可修改全局变量的值,也可在当前页面全局变量值动态更新。

 ———————————————— 

版权声明:本文为CSDN博主「酷酷小七」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_37861326/article/details/84333517


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学