wechat-miniprogram / wxml-to-canvas

MIT License
158 stars 42 forks source link

动态设置高变形问题 #11

Open minderce opened 4 years ago

minderce commented 4 years ago

this.setData({height:500}); 高度发生改变后canvas生成的图片都变形

7NZ commented 4 years ago

希望官方能出动态设置高度的API。 目前wxml-to-canvas组件的高度只有在组件渲染前设置才生效。 动态设置高度不生效,组件的高度会是第一次设置的值。 这时生成的图片就会变形,高度如果过长则会被截断,过短会拉长变形。 目前我的解决方案是先隐藏组件,等数据加载完成之后在设置宽度和高度,再显示组件

<block wx:if="{{showCanvas}}">
  <wxml-to-canvas class="widget" width="{{wdith}}" height="{{height}}"></wxml-to-canvas>
</block>
wx.request({
  url: 'test.php',
  data: params,
  success (res) {
    // 计算宽度和高度
    const {width, height} = calcCanvasSize(res.data)
    this.setData({
     height,
     width,
     showCanvas: true // 显示组件
    });
  }
})
YuniorZen commented 3 years ago

希望官方能出动态设置高度的API。 目前wxml-to-canvas组件的高度只有在组件渲染前设置才生效。 动态设置高度不生效,组件的高度会是第一次设置的值。 这时生成的图片就会变形,高度如果过长则会被截断,过短会拉长变形。 目前我的解决方案是先隐藏组件,等数据加载完成之后在设置宽度和高度,再显示组件

<block wx:if="{{showCanvas}}">
  <wxml-to-canvas class="widget" width="{{wdith}}" height="{{height}}"></wxml-to-canvas>
</block>
wx.request({
  url: 'test.php',
  data: params,
  success (res) {
    // 计算宽度和高度
    const {width, height} = calcCanvasSize(res.data)
    this.setData({
     height,
     width,
     showCanvas: true // 显示组件
    });
  }
})

弃用吧,看样子官方的组件都不维护了。。。