一、<font color = red>Cannot read property 'toString' of undefined</font>
原因:字符串操作问题
问题定位:
问题是出现在画布写文字时
shareContent.fillText(shareContent[0], viewpointCenter, viewpointY);
//shareContent是画布的上下文fillText第一个参数应该是一个字符串的,但是我当时写成了shareContent[0]
//shareContent[0]不是字符串,具体是啥有机会再说,应该改为
shareContent.fillText(showViewpoint[0], viewpointCenter, viewpointY);
二、关于canvas转图片时,图片模糊的问题
在把canvas导出为图片时,总是会出现画面模糊的问题,也在网上找了很久,主要简单的方法就是把
导出图片的width和height都设为画布的2-4倍。其实没啥用。
个人看法,图片模糊是和画布的大小有关,只要按照原比例导出就行了
所以从设计画布开始最好就用px做单位,并且直接根据图片大小来设计画布布局。
三、'data'或者'setData'没有被定义
<font color='red'>Cannot read property 'data' of undefined不能读取没有被定义的属性'data'
Cannot read property 'setData' of undefined</font>
出现'data'或者'setData'属性没有定义时,一般都是没有用var that = this,然后在回调函数里面使用this.setData
或者this.data.[property]获取页面的初始数据
四、文本的换行失效
很多时候对于现实的文本,我们需要让其换行,然后我们在需要换行的地方加上了\n;
但是经常会失效,这是因为\n换行只在<font color='red'> text </font>控件中生效,用view是不会生效的,还有空格的设置也是只对text生效
五、data-后的变量名不区分大小写
<view bindtap='ontap' data-album_id='{{item.albumId}}'>
</view>
此处的album_id不能写成albumId,如果你写成albumId,在ontap方法中获取albumId却是没有值,
它会把albumId转换为albumid的,这样就导致了数据的不一致,容易发生错误,这是因为data-后面的变量
命名是不区分大小写的,而在ontap中获取变量的值却又区分大小写,所以为了保持一致性,我们把data-后面
的变量命名一律都用小写,单词直接用_连接。
网友评论