在小程序里面页面传值的方式有很多:用缓存存取、设置全局变量存取、页面带参传值等。
这里写出一个我比较推荐的方法:页面带参传值,不仅可以传字符串,还可以传对象
就拿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转换回来,不然只是字符串,点不出对象成员