微信小程序如何将数据存储到服务器,微信小程序关于数据存储的一些坑

微信小程序存储方式官方文档说得很清楚,同步和异步。保存数据有以下两种方式:

wx.setStorage 异步保存

wx.setStorageSync同步保存

获取数据也是两种:

wx.getStorage 异步获取

wx.getStorageSync同步获取

今天主要说一下我自己在使用中遇到的一点坑,就是在存储成功后跳转下一个页面却取不到值了。还有最后的解决办法。

具体使用情景是这样的,程序一进来有个登录界面,输入账号密码后登录成功,服务器会返回该用户的具体信息,其中就包括我立即需要保存下来,供全局使用的用户token。

具体代码如下:

if(response.data.success){

//存储token

wx.setStorageSync("token", response.data.data.token)

wx.setStorageSync("headPictures", response.data.data.employeeMap.headPictures)

wx.setStorageSync("employeeName", response.data.data.employeeMap.employeeName)

wx.switchTab({

url: '../taskList/taskList',

})

}

不难发现当访问成功后跳转下一个页面。

在下一个页面Page内代码:

/**

* 页面的初始数据

*/

data: {

token:wx.getStorageSync("token"),

}

直接给data内token赋值。但是这时候打印this.data.token却是空的,没有取到值。另外我也试了另外一个方法, 直接声明有个变量接收,如:var token = wx.getStorageSync("token")  打印出来也是一样,没有值。

解决办法:其实也不算是办法吧,就是小程序不支持这么干,不支持你这么写。想要得到这个值,直接使用wx.getStorageSync("token")即可。或者不想这么长就使用如下样式赋值:

this.setData({

token:wx.getStorageSync("token"),

})

就这么简单,但是入坑了。写出来提醒一下大家不要跟我一样,自认为写得没啥毛病,以为微信小程序的API又有啥bug呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值