精华内容
下载资源
问答
  • getstoragesync
    千次阅读
    2021-06-16 14:20:16

    在开发微信小程序的时候,从A页面用wx.setstoragesync设置了一个缓存,但是到B页面用
    wx.getstoragesync获取不到值。

    网上查资料有的说放onshow 生命周期函数里。 有的说需要定义个方法用 return  wx.getstoragesync返回值,但是都没能解决我的问题。

    最后通过我耐心的排查,发现问题还是出在wx.setstoragesync设置缓存这块。

    如果这样写

    if(options.uid && typeof(options.uid)!='undefined'){
    wx.setstoragesync('uid',options.uid)
    }

    当options.uid 不存在的时候,wx.setstoragesync依然执行了,
    需要改为
    if(options.uid && typeof(options.uid)!='undefined' && options.uid!='undefined'){
    wx.setstoragesync('uid',options.uid)
    }

    这样就正常了。

     

     

    更多相关内容
  • const Cates = wx.getStorageSync('cates'); if (!Cates) { this.getCates(); } else { // 定义数据过期时间10s if(Date.now() - Cates.time > 1000*10) { this.getCates(); } else { this..

    1、将数据缓存到本地

    同步缓存:wx.setStorageSync()

    异步缓存:wx.setStorage()

    2、从本地缓存获取数据:

    同步:wx.getStorageSync()

    异步:wx.getStorage()

     

    onLoad(options) {
        // 获取本地数据
        const Cates = wx.getStorageSync('cates');
        if (!Cates) {
          this.getCates();
        } else {
          // 定义数据过期时间10s
          if(Date.now() - Cates.time > 1000*10) {
            this.getCates();
          } else {
            this.Cates = Cates.data;
            // 重新渲染数据
            let leftMenuList = this.Cates.map(Cates => Cates.cat_name);
            this.setData({
              leftMenuList
            })
            
          }
        }
      },
        /**
       * 获取分类数据
       */
      async getCates() {
        const result = await request({ url: '/categories' });
        this.Cates = result;
        // 数据缓存
        wx.setStorageSync('cates', { time: Date.now(), data: this.Cates });
        // 渲染数据
        let leftMenuList = this.Cates.map(Cates => Cates.cat_name);
        this.setData({
          leftMenuList
        })
      },

     

     

    展开全文
  • //存数据 let ret = uni.getStorageSync('info');//取数据 console.log(ret); //控制台输出 '喵喵喵~~~' } Tips: 上述代码中 h5存数据,uni-app中可以根据h5存的键取到相对应的值,反之亦可!

    处理如题需求,我们须要先了解相关知识
    需要先掌握uni-app关于数据缓存的
    需要了解html5的plus关于Storage模块的知识

    如下h5代码
    document.addEventListener('plusready', function(){
    	plus.storage.setItem('info', '喵喵喵~~~');//存数据
    	let ret = plus.storage.getItem('info');//取数据
    	console.log(ret); //控制台输出 '喵喵喵~~~'
    })
    
    
    
    如下uni-app代码
    onShow(){
    	uni.setStorageSync('info', '喵喵喵~~~');//存数据
    	let ret = uni.getStorageSync('info');//取数据
    	console.log(ret); //控制台输出 '喵喵喵~~~'
    }
    
    
    Tips: 上述代码中 h5存数据,uni-app中可以根据h5存的键取到相对应的值,反之亦可!
    
    展开全文
  • 小程序wx.setStorageSync后,在用getStorageSync获取数据有时会获取不到;改为异步获取。

    背景:
    在购物车页面拿不到店铺编号
    在这里插入图片描述
    问题:
    是wx.getStorageSync 没有取到值导致的。

    目前实现:
    是获取后存下来wx.setStorageSync("merchantNo", userStoreInfo.data.merchantNo)
    每次用的时候都是直接取的merchantNo: wx.getStorageSync("merchantNo")

    解决:
    1、直接写成异步获取,获取不到值的时候重新去后台取一次;2、在往缓存里放的时候同时保存到全局变量里,取值从全局或缓存里取,如果这个时候还拿不到数据就再异步请求重新赋值。

    async goAgain(e) {
        let params_ = {
          orderNo: e.currentTarget.dataset.orderNo,
          // merchantNo: wx.getStorageSync("merchantNo")
          merchantNo: await this.getMerchantNo()
        }
        console.log('params_', params_)
        oneMoreOrder(params_).then(res => {
          if (res.code == 0) {
            NCart.initNum()
            wx.switchTab({
              url: "/pages/shopping/cart"
            });
          } else {
            wx.showToast({
              title: res.msg,
              duration: 2000,
              icon: "none"
            })
          }
        })
      },
      async getMerchantNo () {
        try {
          let value = wx.getStorageSync('merchantNo')
          if (value) {
            return value
          }
          let userStoreInfo = await getUserMerchant()
          return userStoreInfo.data.merchantNo
        } catch (e) {
          console.log('eeee', e)
        }
      },
    

    参考文章:
    小程序wx.setStorageSync后,在用getStorageSync获取数据有时会获取不到
    使用wx.getStorageSync取不到值为什么 ?
    微信小程序-设置本地缓存和读取(同步,异步)

    展开全文
  • getStorageInfoSync和getStorageSync

    千次阅读 2020-02-27 21:24:26
    学习小程序的时候,想要获取key对应的对象没注意使用了getStorageInfoSync,一直只显示了key值,找了很久的问题,后来发现是getStorageSync。 getStorageInfoSync是同步获取当前storage的相关信息,获取的是所有...
  • wx.getStorageSync要刷新才能取值

    千次阅读 2021-04-09 10:19:17
    wx.getStorageSync踩坑记 看到好多帖子说要去onShow()中使用wx.getStorageSync,我查的所有帖子几乎都是。但是我不管是用onShow还是onLoad都没有成功。 因为我使用了最新的获取用户信息的 wx.getUserProfile接口,它...
  • uni.getstoragesync获取不到最新值

    千次阅读 2021-09-26 15:07:38
    uni.setstoragesync 再用uni.getstoragesync获取值时 每次要刷新才会更新到最新值 看了那么文章都没有找的有效的解决方案 直到看到了这篇文章找到了灵感 https://www.debug8.com/javascript/t_42980.html 解决方案 ...
  • 在做小程序本地存储的时候,就是要异步存储setStorage 然后同步获取本地存储数据getStorageSync 如果你是用
  • 编写小程序时, 总是无法显示页面, 和源码一段一段的对比,调试, 最后发现我把getStorageSync写成了getStorageInfoSync。 getStorageInfoSync是同步获取当前storage的相关信息,获取的是所有信息 getStorageSync从...
  • 问题描述 需求:从缓存中读取session_id,并装入cookie传给后台 问题:后台收到的值为undefined 代码部分 修改前 使用wx.getStorage获取数据,然后存到当前页面的... const SESSION = wx.getStorageSync('session_id')
  • varopenId=wx.getStorageSync('OPENID'); 很简单一行代码,就是获取不到值。 为什么,其实很简单,原先就没有保存进去。 保存的代码是: wx.setStorageSync({ key: 'OPENID', data: openId }) 原先是 wx....
  • 公众号网页跳转到微信进行静默授权后,重定向到自己的页面,这时候获取上一个页面缓存的数据,获取不到,官网也没有解决方案。用vuex进行存储也会被清理掉,需要后端保存数据,不在前端进行存储 ...
  • wx.getStorageSync只有key,同步的 只有wx.getStorage异步在这里插入代码片的,才有回调函数 wx.getStorage wx.getStorage({ key: moneyList[i].moneyTpe, success: (res)=> { console.log(res) this....
  • 一、全局变量的设置 在miniprogram > ... shopObject) // 把修改完的数据再次存放本地 }, 拿数据 // 接收数据可以这样玩 data: { checkAll: wx.getStorageSync('checkAll'), address: wx.getStorageSync('address'), },
  • 某个页面的数据需要从缓存里面取值,定义的时候不能直接在data里面取缓存里面的值,要在onload里面取setdata,这样才能确保能取到值 写在data里面,在开发版可以,发到体验版偶尔会取不到值,下面附上社区里面的解释...
  • return uni.getStorageSync(key); }else{ let data = ''; uni.getStorage({ key:key, success: function (res) { data = res.data; } }); return data; } } catch (e) .
  • wx.getStorage异步和wx.getStorageSync同步区别

    万次阅读 多人点赞 2018-11-20 15:57:50
    1.wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync) 可以对本地缓存进行设置、获取和清理。本地缓存最大为10MB 2.localStorage 是永久存储 一...
  • // getStorageSync存储方法 function _getStorageSync ( key , success ) { try { var value = wx . getStorageSync ( key ) ; if ( value ) { // Do something with return value return...
  • console.log( wx.getStorageSync('token')) //这个时候还能取到 http.getreq("/mini/UserActivity/oneGrab", that.data.parmas[0], function(res) { console.log(res) } ) } 在页面onload...
  • 在页面的data部分使用wx.getStorageSync时会因为页面生命周期导致wx.getStorageSync获取到的数据是空,从而影响数据的解析 正确的使用方法是data中不使用wx.getStorageSync,改放到生命周期函数中或其他方式赋值。 ...
  • 小程序wx.getStorageSync

    千次阅读 2019-09-30 17:19:20
    今天开发小程序的过程中在调用后台数据请求图片时,图片无法显示,原因是图片不在本地缓存,后来用了小程序的接口:wx.getStorageSync解决问题。此方法可以向本地缓存存入数据 贴上代码 <image src='{{item.lb_...
  • (uni.setStorage() 会替换上一条缓存信息,所以需要把你要保存的每一条视频信息push到一个数组里面,将这个数组保存在缓存中) try { this.videoStorage = uni.getStorageSync('videoSchedule') // 判断缓存中...
  • Page({ data: { testnum:""//设置测试参数 }, test:function(){ ... var num = wx.getStorageSync('testNum');//wx.getStorageSync(key),获取本地缓存 this.setData({ testnum: num }); } })
  • 小程序 wx.getStorageSync 读取数据

    万次阅读 2019-07-10 11:56:01
    在index.wxml页面存储了一个数据wx....在另一个tab页面order.wxml取值wx.getStorageSync ("shopInfo") 答案: 在onload里面读取数据 onLoad: function() { this.setData({ shopI: wx.getStorageSyn...
  • 不同小程序同一命名的本地存储混乱,A小程序新建读取的本地存储,会使用到B小程序的本地存储,小程序间的本地存储是不隔离的。...this.data.userCode = wx.getStorageSync('397615userCode'); ...
  • 后来仔细读官方文档才发现自己被误导了,wx.getStorageSync同步读缓存 与 wx.getStorage异步读缓存写法有差异,而我在wx.getStorageSync使用了wx.getStorage的写法。 原因如下: 当时看官方文档,按照阅读习惯,我...
  • 但是如果代码里没有将原有token干掉,而是选择用新值替换旧值,会出现一个神奇bug: 用wx.getStorageSync取token时,会取上一次旧token值,大家有遇到这样的问题么? 当然我觉得我这样的做法不是很合理,毕竟退出...
  • 以前的业务今儿出现了报错,一查才知道, wx.getStorageSync 获取缓存中的空对象,小程序自动加上了nv_toString函数。 真机截图 开发者工具 目前解决方法,先自己写一个取缓存的方法顶一阵,等官方修复就没问题了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,284
精华内容 4,913
关键字:

getstoragesync

友情链接: 163music-Source-master.rar