通常,我们在解决页面之间传值的时候,最常用的方法就是本地存储和URL带参数过来,然后在用的那一页进行获取,本地存储又分为cookie和localstorage,在小程序中,舍弃了cookie,只支持localstorage,所以,接下来就为大家介绍下小程序中如何在页面之间传值
一、localstorage
1、设置存储:
wx.setStorageSync('session_id', session_id);
2、读取存储:在使用的页面执行如下操作
let session_id = wx.getStorageSync('session_id');
二、
URL带参数
1、设置存储:如下的例子中便是
wx.switchTab({
url: '../index/index?session_id=' + session_id
})
2、读取存储:(必须在生命周期函数中读取!)
onLoad: function (options) {
let that = this;
this.setData({
//把读取出来的数据存储到页面的数据data中
session_id: options.session_id
})
}
此处一定要注意,options.session_id即可把存储在本地的
session_id给取出来,这还没有完,要想在其他自定义的
函数中使用的话,一定要把这个设置为事先在data中定义的数据,然后才能在其他函数中使用,
data: {
mailCode: "发送验证码",
boolean: true,
isChecked: false,
phone: '',
phoneTip:'',
keyCode: '',
keyCodeTip:'',
userName: '',
userNameTip: '',
userPassword: '',
userPasswordTip: '',
next: '',
code: '',
session_id:''
},
比如说如下情况,用户登录要用到这个session_id,需要和用户名等一起发过去,那么这里就要这样做
//登录
oLogin: function ( ) {
let that = this;
var pre = that.data;
let avatarUrl = wx.getStorageSync('avatarUrl');
wx.request({
url: 'https://www.muwai.com/index.php/Xcx/Login/wx_login',
data: { session_id: pre.session_id, username: pre.userName, phone: pre.phone, password: pre.userPassword, phone_code: pre.keyCode, head_photo: avatarUrl},
success: res => {
//成功的话直接跳转到首页
let oStatus = res.data.status;
if (oStatus == 100) {
let session_id = res.data.session_id;
wx.setStorageSync('session_id', session_id);
wx.switchTab({
url: '../index/index?session_id=' + session_id
})
}
}
})
}
这里登录的时候就要用到,所以用的时候去data里面取即可,用
that.data.session_id即可取到
tips:作者曾多次在登录函数中使用options.session_id获取本地存储,都失败了,最终才知道,必须要在生命
周期函数中获取才可以,大家学到了吗?
觉得帮到你的话动动小手点个赞吧