收藏
回答

非常奇怪的page页数据问题?

首先我在onload函数中获取openid并setdata到页面data中,此时打印data,存在openid

wx.cloud.callFunction({
            name:'getOpenidtest',
            success:res =>{
                console.log(res,'11111111111');
                //console.log(res.result.openid);
                this.setData({
                    openid:res.result.openid
                })
                console.log(this.data);
            },
            fail:res =>{
                console.log(res,'11111111111');
            }
        })

然后在onshow里调用openapi,他却消失了,打印data,openapi存在

 onShow:function(){
        const { goods_id,countDownTxt} = this.data;
        const openid = this.data.openid
        
        if(countDownTxt == null){
            wx.cloud.callFunction({
                name:'sendMessagetest',
                data:{
                     goods_id,
                     openid
                     
                },
                success:res =>{
                    console.log(this.data);
                    console.log(res,'sendMessage正在被执行',openid,goods_id);
                },
                fail:res =>{
                    console.log(res,'fail');
                }
            })
        }
        //获取openid
        
    }

大致就是这种情况,求解答

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

2 个回答

  • 陈宇明
    陈宇明
    2021-03-11
    console.log(res,'sendMessage正在被执行',this.data.openid,goods_id);
    你这样输出试试
    


    2021-03-11
    有用
    回复 1
    • Wdam
      Wdam
      2021-03-11
      this.data里有数据,openid没数据
      2021-03-11
      回复
  • 跨商通
    跨商通
    2021-03-11

    谢邀。

    应该是异步问题。

    onShow里的代码并不一定比onLoad里的代码更晚执行。

    2021-03-11
    有用
    回复 3
    • Wdam
      Wdam
      2021-03-11
      有时候index的函数比appjs里执行的还早
      2021-03-11
      回复
    • 跨商通
      跨商通
      2021-03-11回复Wdam
      是的。这也是异步的。你可以检查一下是否异步问题。
      2021-03-11
      回复
    • 丑丑男
      丑丑男
      2021-04-28
      假如你页面返回时只会触发onShow不会触发onload
      2021-04-28
      回复
登录 后发表内容
问题标签