问题描述:
做法:设想,在一个页面A的A.js中改变app.js中设置的某全局变量 theGlobalData 的值,然后在页面B的B.wxml上专门有一个{
{theGlobalData}}用来获取并显示该全局变量值的表达式。
目的:上述做法目的是当我们在A.js中对一个变量做了变化,希望另一个页面B.wxml能够实时呈现该变量被改变后的值。
遇到的困难:A.js中改变的这个全局变量在B.wxml中还是显示原来的初始值,并没有因A.js中的赋值而改变。
各类尝试和调整:
1. 是不是没用到this.setData({ }),导致我data里的值没被重新刷新和覆盖?用了。
2. 是不是没用var app=getApp()?也用了。
3. 是不是没用正确的赋值语句,如app.globalData.theGlobalData=xxxx?用了。
4. 其他页面C.js、D.js、F.js中用console.log(app.globalData.theGlobalData)显示一下,发现该语句放onLoad()中也是在控制台输出初始值,但是!用在其他函数方法中却是已经改变后的值!!如放在某个标签的点击方法中,点击就会输出改变后的值。
5. 在B.js中也做了步骤4的尝试,发现效果一样。B、C、D、F页面都是一样的情况!
结论:全局变量的值确实在A.js中改变了,只不过切换去其他页面时,这些页面没有再进行渲染,页面不重新渲染就表现出