云开发页面间利用缓存传值慢一步,求解。
云开发在做订单信息查询的页面,页面间的传值采用缓存传值的方式,如下面代码所示。但是在传值时遇到了问题:__第一次查询时查询到4条信息,传至B页面时也是4条;第二次查询是20条信息,传至B页面还是第一次查询的4条;第三次查询是19条,传至B页面的还是第一次查询的4条。以上第二次和第三次查询都是在模拟器页面直接点击左上角的“<”后退返回的查询页面。第四次查询使用了control+R刷新了一下,结果查询的结果是4条,但传的值确实第三次的19条信息。__因此感觉是1、第一次的缓存一直存在,没有被每次的wx.setStorageSync
覆盖。2、control+r刷新了,上一次的值传了过来。3、传值始终慢了一步,除非第一次传值。第一次查询:
第二次查询(页面后退):
第三次查询(页面后退):
第四次查询(control+r刷新):
另外:设置了清楚缓存按钮,也起不到作用。求解。缓存传值方式:
/* A页面**/ wx.setStorageSync( 'searchlist' , searchdata) /* B页面**/ var searchstorage = wx.getStorageSync( 'searchlist' ); |
查询页面js:
clearstorage: function (e) { wx.clearStorageSync() console.log( "是否清楚了缓存" ,aaa) }, formSubmit: function (e) { console.log( 'form发生了submit事件,携带数据为:' , e.detail.value) var city = e.detail.value.city; var name = e.detail.value.name; var operationStartDate = e.detail.value.operationstartdate; var operationEndDate = e.detail.value.operationenddate; var inputStartDate = e.detail.value.inputstartdate + ' ' + '00:00:00' ; var inputEndDate = e.detail.value.inputenddate + ' ' + '23:59:59' ; var phone = e.detail.value.phone; var ccc = e.detail.value.aaa console.log( '输入输出时间' , inputStartDate, inputEndDate) if (ccc == false ) { console.log( ' 不搜索' , ccc), wx.getUserInfo({ success(res) { var nickname = res.userInfo.nickName; const _ = db.command db.collection( 'orderlist' ).where(_.and([ { name: _.eq(name) }, { phone: _.eq(phone) }, { inputtime: _.gte(inputStartDate).and(_.lte(inputEndDate)) }, ])) .get({ success(res) { var searchdata = res.data; wx.setStorageSync( 'searchlist' , searchdata) console.log( 'searchlist是' , searchdata) wx.navigateTo({ url: '/pages/searchlist/searchlist' , })
以下省略 |
显示页面js:
// miniprogram/pages/searchlist.js var searchstorage = wx.getStorageSync( 'searchlist' ); Page({ data: { listData: searchstorage }, onLoad: function (options) { console.log( '显示界面是否收到缓存' , searchstorage) }, |