微信小程序wx.navigateTo传参

为什么console里money和username都传过来了 AppData里没有username的数据啊

option携带的参数是用url传递的。

非常不建议用appData做全局变量。因为你的页面在销毁的同时,变量也会销毁。这时候你用等号赋值。例如

app.username = username;此时username被销毁,传递的引用也被销毁。所以app.username 为null;

如果实在要用appData。用Object.assign函数。

建议使用setStorage 和 getStorage

https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorage.html

option里面没有看到有username变量哦?看看你的url里面有没有包含该参数。

小程序里 尽量不要把全局丢到App里。尽量在App定义const常量。

 

var student = {}
student.name = "张三"
student.age=18
var studentApp = student;
console.log(studentApp)
for(var key in student){delete student[key];}console.log(student);
console.log(studentApp)

你的student 在 pageA 页面初始化 生成了 没有问题。

当你移动到PageB, pageA中的student就会被销毁。

此时 studentApp也会被销毁!

var student = {}
student.name = "张三"
student.age=18
var studentApp = {}; Object.assign(studentApp,student);
console.log(studentApp)
for(var key in student){delete student[key];}console.log(student);
console.log(studentApp)

 如果用Object.assign(); 就不会发生这样的问题。

 

https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#Page.prototype.setData(Object%20data,%20Function%20callback)

应该使用 setData方法 而不应该使用 this.data.username

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632