setData在分享中,进行一次share:true和share:false变更
发布于 5 年前 作者 xia98 9118 次浏览 来自 问答

但是 没有中间状态, 不知道是不是 setData 的机制问题,在方法完结之后,进行统一设置,

想问问有没有,哪位已经写过了,怎么写的,

希望 可以提供一下代码, 或者思路,

谢谢

10 回复

直接给遮罩层的hidden 动态设置 true 和 false 就好了

data: {

    isShow: false

}

显示

bindtapShow: function() {

    this.setData( {

        isShow: true

    } )

}

隐藏

bindtapHide: function() {

    this.setData( {

        isShow: false

    } )

}

能  不是在success  回调里面么

恩恩    我这个才发现  感谢

异步中能调起吗?wx.request异步还没有完,onShareAppMessage就应该执行完了吧

我这个 分享完才 显示 遮罩 ,

我测试调不起来的,onShareAppMessage中间异步还没有执行到success回调就已经执行完了,拿不到return,个人感觉中间异步需要拿出来验证

恩恩  感谢  我是想在 一个方法中 变更 true 和 false 两种状态  实现分享遮盖,  您提供的方法不太适用。

异步拿出去,遮罩就好控制了

onShareAppMessage: function (res) {   //分享

    var that = this

    // 查询是否 发布过 

    that.setData({

      share: false        //  false

    })

    wx.request({

      url: app.globalData.requestUrl + ‘field/getRelease.do’,

      data: {

        design_id: that.data.design_id,

        rd_session: wx.getStorageSync(‘x-app-sessionid’)

      },

      header: {

        ‘content-type’: ‘application/json’

      },

      method: ‘GET’,

      success: function(res) {

          if(res.statusCode ==200){

              if( res.data.status == 0){

                wx.showToast({

                  title: ‘转发前 ,请先发布’,

                  duration: 2000

                })

                return ;

              }

              if (res.data.status == 1) {

                console.log(res.data.status) 

                return {

                  title: that.data.showText,

                  imageUrl: that.data.picUrl, 

                  path: ‘/pages/setups/preview/preview?design_id=’ + that.data.design_id,

                  success: function (res) {

 

                  },

                  fail: function (res) {

 

                  },

                  complete:function(){

 

                  }

                }

              }

              if (res.data.status == 2) {

                wx.showToast({

                  title: ‘表单已经完结,无法发布。如需要:请修改时间。’,

                  duration: 3000

                })

              }

          }

      },

      fail: function(res) {

      },

      complete: function(res) {

          that.setData({

           share: true               //  true

      })

      }

    })

 

  },

类似RN可以这样写,没测试过不知道可不可以用

var renderData = this.data

renderData.share = true

renderData.xxx = xxx

this.setData ( {renderData} )

回到顶部