微信小程序canvas重复调用,二次渲染失败

击列表触发canvas内容层显示,根据传值显示不同内容,第一次点击时canvas正常显示,后续点击canvas内容不显示,渲染失败。

canvas二次调用后canvas-id重复了,重复的id对应的画布就不正常工作了,解决办法就是给重复调用的canvas-id不同的值进行调用

 <view class="dingdan_list_a_bot" bindtap="showCode" data-code="{{item.scan_code}}">  
  <view class="dingdan_list_a_bot_fl">
      <view class="text1">取餐码</view>
          <view class="text2">{{item.code}}</view>
      </view>
  <view class="dingdan_list_a_bot_fr">立即使用</view>
</view>

 利用canvas-id='canvas{{owner}}' 区别不同canvas

<view wx:if="{{isShow}}" class="ruleZhezhao">
  <view class='ruleZhezhaoContent'>
    <view class='ruleZhezhaoText'>
      <canvas class='canvas' canvas-id='canvas{{owner}}'></canvas>
    </view>
    <view bindtap="toBack" class="toBack"></view>
  </view>
</view>

 timeStamp=Date.parse(new Date),时间戳确定调用的id进行操作,保证每次调用的canvas-id是唯一的

showCode:function(e){
    var code=e.currentTarget.dataset.code
    var timeStamp=Date.parse(new Date)

    this.setData({owner:timeStamp/1000})

    qrcode = new QRCode('canvas'+(timeStamp/1000), {
      text: code, //需要转化为二维码的字符串
      width: thatwidth,
      height: thatwidth,
      colorDark: "#000000",
      colorLight: "#ffffff",
      correctLevel: QRCode.CorrectLevel.H,
    })

    this.setData({
      isShow:true
    })
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值