微信小程序中 this.data与 this.setData

问题引入
      今天在学view组件时,遇到了这个问题。本想通过js来动态控制播放暂停,同时在暂停时添加一个遮罩层(动态控制该遮罩层的display样式),然而在用 this.data.videoStatus=false 方式时,视图没有发生变换并且 样式没有被修改。

缘由
     this.setData({}) 方式,会将数据从逻辑层发发送到视图层,而 this.data方式不会同步数据(没有更新视图层的数据)。

小程序文档中也有说明:

  viewTap: function() {
    this.setData({
      text: 'Set some data for updating view.'
    }, function() {
      // this is setData callback
    })
  },

部分代码:

<view class="container">
		<video id="myvideo" src="xxxx"  >
       <cover-view class="videomask" style="display:{{ videoStatus?'none':'flex'  }}">
        <button id="playbtn" bindtap="bindplay" >播放</button>
      </cover-view>  
  	</video>
	</view>
  onLoad: function (options) {
    this.videoContext = wx.createVideoContext('myvideo')
  },
  bindplay(){
    this.videoContext.play()
    //无法更新view层的的数据,应该使用下面的方式
    this.data.videoStatus=true	
  },

应更改为:

  onLoad: function (options) {
    this.videoContext = wx.createVideoContext('myvideo')
  },
  bindplay(){
    this.videoContext.play()
    this.setData({
      videoStatus:true
    })
  },

初次接触微信小程序开发,如果讲解有误,请在评论区指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值