在小程序里面页面传值的方式有很多:用缓存存取、设置全局变量存取、页面带参传值等。
这里写出一个我比较推荐的方法:页面带参传值,不仅可以传字符串,还可以传对象
就拿wx.navigateTo
这个Api举例子吧
在a
页面中:
//a页面
toBpage(){
let user = 'YulRW';
let password = '123456'
wx.navigateTo({
url: `page/b/b?user=${user}&password=${password}`
})
}
在b
中:
//b页面
onLoad: function(options) {
console.log(options); //{user:'YulRW',password:'123456'}
},
这种是在url
的?
后面加要传递的变量,多个变量中间用&
分隔
但是,这种写法并不方便,如果参数多了写起来就很麻烦,而且不能传JSON格式的对象,所以有以下推荐写法:
a
页面:
toBpage(){
let data = {
user:'YulRW',
password:'123456',
date:'2020.1.1',
other:'xxxxxx'
}
data = JSON.stringify(data); //把JOSN转化为字符串形式
wx.navigateTo({
url: `page/b/b?data=${data}`
})
}
b
页面:
//b页面
onLoad: function(options) {
console.log(JSON.parse(options)); //data:{user:'YulRW',password:'123456',date:'2020.1.1',other:'xxxxxx'}
},
注意一定要JSON.stringify
转换为字符串,不然获取到的就是[object Object]
,拿不到数据的
而在b页面也要JSON.parse
转换回来,不然只是字符串,点不出对象成员