就是在关闭app后再打开,仍能获取到的缓存
uni.setStorage是不行的,重新打开app缓存就清空了。
6***@qq.com
- 发布:2018-12-19 12:52
- 更新:2020-05-27 18:31
- 阅读:15740
4 个回复
1***@qq.com - 畅游阁科技
为什么,uniapp 一旦http请求了,本地所有缓存都清空了呢?
Trust - 少说废话
App 上,storage 是持久存储的。
所有手机设备都是这样么,建议多测试几个机型。
并且,提供下有问题的机型的详细信息。
6***@qq.com (作者)
谢谢你的回复,
可是我的存储到storage里,退回app再进入,原缓存里的数据就没有了,
存储:
uni.setStorage({
key: 'timeconsumList',
data: this.timeconsumList,
success: function () {
console.log('success');
}
});
读取:
// 获取缓存中的timeconsumList
uni.getStorage({
key: 'timeconsumList',
success: function (res) {
this.timeconsumList = [];
this.timeconsumList.push(...res.data);
}
});
timeconsumList是一个数组,里面存储的是多个对象
然而,并没有读出已经存储进去的数据。
测试手机 华为mate10
2018-12-19 14:19
6***@qq.com (作者)
你好,问题解决了。在读取的时候,需要把this赋值给that。
2018-12-19 14:44
6***@qq.com (作者)
没想到啊没想到,在如此先进的今天,还需要写个var that = this;
Trust
要用 ES6 的箭头函数,uni-app 是支持 ES6 的语法的。
2018-12-19 14:49
Trust
这种语法层面的细节,多注意下。
2018-12-19 14:49
嵪代码
回复 Trust:箭头函数怎么写??我没用过
2019-02-18 17:56
h***@163.com
在哪写 var that = this?
2019-02-19 01:15
3***@qq.com
回复 嵪代码:
success: function (res) {
this.timeconsumList = [];
this.timeconsumList.push(...res.data);
}
ES6箭头函数写法:
使用箭头函数后,this 就不需要改了
success(res)=>{
this.timeconsumList = [];
this.timeconsumList.push(...res.data);
}
2019-03-19 16:41
风云杭州
回复 3***@qq.com: 不错,学到了
2020-07-18 10:19
CaesarHe - 微信:Caesar-Bosheng-He
var that = this 要写在所有的异步操作之前,就像ajax请求,不然在回调里再取this就不再是你要的this啦