收藏
回答

为什么在app.js中设置的缓存在另一个页面的onload加载不到,要onshow才可以?

回答关注问题邀请回答
收藏

5 个回答

  • 青团社
    青团社
    2020-12-08

    因为你是tabbar切换。不会多次触发onLoad

    2020-12-08
    有用
    回复
  • 冬日阳光
    冬日阳光
    2020-12-05

    还有一个奇怪的地方是我在这里做非空判断时走的是不为空,但却什么都打印不出来

    2020-12-05
    有用
    回复 12
    • this
      this
      2020-12-05
      因为是undefined呀,你请求是异步的,在你执行wx.login的时候,请求还没赋值呢
      2020-12-05
      回复
    • 冬日阳光
      冬日阳光
      2020-12-05回复this
      就是undefined也会判断不为空是吗?那着是不是应该判断openid是否为undefid,如果是undefind就说明缓存失效,要再次发送请求去取?
      2020-12-05
      回复
    • this
      this
      2020-12-05
      不是这个意思,我的意思是,你在app.js那里发送了一个请求,这个请求是异步的,就是说需要等待时间,但是程序不会等,会继续往下执行,然后到了你这个页面的onload周期的时候,上面的请求还是处在一个请求中的状态,这个时候你调用wx.getStorageSync去拿值,是拿不到的,这个值会显示undefined。然后现在,你要做的是,必须等上面那个请求执行完之后再去wx.getStorageSync拿值
      2020-12-05
      回复
    • 冬日阳光
      冬日阳光
      2020-12-05回复this
      那我这里这样做行吗?定义一个全局状态码,当请求成功时改变状态码的值,然后当这个状态码值改变时再去拿值
      2020-12-05
      回复
    • this
      this
      2020-12-05
      还有一个很重要的问题,你这里直接把appid和secret暴露在前端,可能会过不了审核,你好像整个登录流程都是有问题的
      2020-12-05
      回复
    查看更多(7)
  • this
    this
    2020-12-05

    利用Promise,把异步请求变成同步

    2020-12-05
    有用
    回复
  • 陈宇明
    陈宇明
    2020-12-05

    先后加载顺序的问题

    2020-12-05
    有用
    回复 4
    • 冬日阳光
      冬日阳光
      2020-12-05
      怎么样才能在另一个页面的onload时候取到呢?我想在onload的时候就用
      2020-12-05
      回复
    • 陈宇明
      陈宇明
      2020-12-05回复冬日阳光
      你在appjs里面是一个请求,这个属于异步的,网络不好另外的页面onload就取不到了,因为还没返回。
      只能你在onload里面调用这个请求然后在请求成功后去取参数。
      2020-12-05
      回复
    • 冬日阳光
      冬日阳光
      2020-12-05回复陈宇明
      我想在首页做登录取到openid,nickname,头像等做缓存在另一个页面显示,这样可以实现吗
      2020-12-05
      回复
    • 陈宇明
      陈宇明
      2020-12-05回复冬日阳光
      可以
      2020-12-05
      回复
  • Cjiang
    Cjiang
    2020-12-05

    你好,可以参考下文档:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html:——对于路由的触发方式以及页面生命周期函数如下——

    2020-12-05
    有用
    回复
登录 后发表内容
问题标签