收藏
回答

关于异步数据 在真机上的问题

app.js 获取是否授权 (这里只讨论已经获取授权)  这时候的app.global.isAuthorized 是true


------------------------------- 这是出现问题页面的相关代码---------------------------------



------------------------------------------------------------------------------------------------

这编辑器上截图


但是到了真机(隐藏了) (只在打一次打开小程序时会出现,切换到其他Tab再切回来就好了)

然后我看了一下真机上的wxml


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

2 个回答

  • 是小白啊
    是小白啊
    2018-07-20

    麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-07-20
    有用
    回复 3
    • 半醒星辰
      半醒星辰
      2018-07-20

      好的  下午我去写个代码片段

      2018-07-20
      回复
    • 半醒星辰
      半醒星辰
      2018-07-20

      wechatide://minicode/inOi5Gmp7G5i  代码片段链接 机型 iphone6s   其他机型我也没试过

      2018-07-20
      回复
    • 半醒星辰
      半醒星辰
      2018-07-20

      另外  需要一个已经授权过的appid   导入

      2018-07-20
      回复
  • 2018-07-20

    hidden?用wx-if

    2018-07-20
    有用
    回复 7
    • 半醒星辰
      半醒星辰
      2018-07-20

      一样  我之前用的wx:if   后来改的hidden  都一样 在真机上第一次打开  获取到的isAuthorized 就是false   不是app.js 里 的true

      2018-07-20
      回复
    • 2018-07-20回复半醒星辰

      第一不要用hidden;第二我现在明白你的问题了,wx.getSetting和wx.getUserInfo都是网络请求,所有你在page的onLoad中直接setData就会出现这个问题,要在回调中用getCurrentPages()这个函数获取当前页面,然后再去setData

      2018-07-20
      回复
    • 半醒星辰
      半醒星辰
      2018-07-20回复

      解决了 我把isAuthorized 放到storage中  在app.js 中wx.setStorageSync    再在页面中getStorageSync

      2018-07-20
      回复
    • 半醒星辰
      半醒星辰
      2018-07-20回复

      其实就是wx.getSetting  的sucess 中 进行了异步操作, 模拟器的时候这个异步操作在页面还未加载的时候就完成了,到了真机上这个异步操作再页面加载完成之后

      2018-07-20
      回复
    • 2018-07-20回复半醒星辰

      本身就是异步的啊。。你这种做法没区别啊,你还是要用getCurrentPages的

      2018-07-20
      回复
    查看更多(2)
登录 后发表内容