canvas 上清空画布无效,下面是执行无效的代码。
let ctx0 = this.refs.myCanvas0.getContext("2d")
ctx0.clearRect(0, 0, ctx0.width, ctx0.height)
具体无效原因是,上面的 ctx0.width, ctx0.height 为 undefined 。由于代码中,this.refs.myCanvas0.getContext(“2d”) 获取的是绘画环境,该环境不存在画布的相关属性,所以为 undefined 。正确写法如下
let canvas = this.refs.myCanvas0
let ctx0 = canvas .getContext("2d")
ctx0.clearRect(0, 0, canvas.width, canvas.height)
画布的宽高,需要由画布元素提供。记录一下这个问题,防止以后再犯。
本文详细解析了在使用canvas进行绘图时,遇到的清空画布问题及其原因。指出直接通过getContext('2d')获取的环境无法直接读取画布的宽高属性,需先从refs获取画布元素,再调用getContext('2d')方法,最后使用clearRect方法清除画布。文章强调了画布的宽高属性应由画布元素本身提供。
7208

被折叠的 条评论
为什么被折叠?



