封装了一个评论弹框组件
样子长这样子
代码是酱紫的↓
wxml:
< view class = 'cover' hidden = '{{hide}}' bindtap = 'tapHandle' data-opr = 'close' > < view class = 'content' style = 'top:{{top}}rpx' > < view class = 'title' >评论< view class = 'close' data-opr = 'close' >
|
wxss:
/* components/input-eva/input-eva.wxss */ .cover { position : absolute ; bottom : 0 ; left : 0 ; right : 0 ; top : 0 ; background : rgba( 0 , 0 , 0 , . 4 ); font-size : 26 rpx; z-index : 3 ; } .content { position : absolute ; top : 373 rpx; left : 30 rpx; right : 30 rpx; padding : 0 30 rpx 30 rpx; background : white ; } .title { line-height : 114 rpx; height : 114 rpx; text-indent : 30 rpx; font-size : 32 rpx; font-weight : bold ; color : #999 ; text-align : center ; } .close { float : right ; width : 60 rpx; height : 100% ; background : url (data:image/png;base 64 ,iVBORw 0 KGgoAAAANSUhEUgAAAB 4 AAAAeBAMAAADJHrORAAAAHlBMVEUAAACampr///+ZmZmampqampqampqbm 5 uampqZmZnRBniaAAAACXRSTlMAnAHx 5 Y 2 HfnH+McWJAAAAeElEQVQY 012 RywmAMBBEFzvQmzf 1 YA 924 NmbdVhJQIR 0 axjCLLxAsrt 5 Q 7 KfeK 7 ItZ 9 xlMXhML 9 x 18 nxWr+ 2 y 2 LcmA 4 toX 4 a 2 xjI+t 6 OcfeMuyCxBJtwCkbhFFThFBgjpp 7 v 8 T/mw 3 xZD+tlP 9 gv 9 pP 95 jw 4 L 87 zB 8 x 6 PJd 9 LT 2 AAAAAAElFTkSuQmCC) center / 30 rpx no-repeat ; } .area { display : block ; padding : 10 rpx 16 rpx; height : 200 rpx; border : 2 rpx solid #E6E6E6 ; border-radius: 6 rpx; background : white ; } .eva-content { width : 100% ; height : 100% ; } .send { margin : 20 rpx 0 0 ; line-height : 80 rpx; border-radius: 6 rpx; color : white ; background : #F3CC3E ; font-weight : bold ; } .send.disable { color : rgba( 255 , 255 , 255 , . 66 ); } .placeholder { color : #ccc ; } |
js:
// components/input-eva/input-eva.js Component({ properties: { hide: { type: Boolean, value: true }, evaWho: { type: String, value: '' , observer(newV,oldV) { if (newV !== oldV) { this .resetValue() } } } }, data: { text: "" , value: "" , top: 373, }, methods: { inputText(e) { this .setData({ text: e.detail.value }) }, blur() { this .setData({top:373}); }, focus() { this .setData({top:20}) }, tapHandle({target:{dataset:{opr}}}) { if (opr == 'close' ) this .triggerEvent( "close" ); else if (opr == 'send' ) this .send(); }, send() { this .triggerEvent( "submit" , this .data.text); this .resetValue(); }, resetValue() { this .setData({ value: "" , text: "" }) } } }) |
问题是这样的=>
在真机中,ios、安卓都一样,当前页面有这个组件时,当进入其他页面再返回到这个页面时,这个组件的textarea会崩溃,操作不了,连placeholder都显示不了【开发工具上是没问题的】。只有使用wx:if将组件回收,在返回到页面时再将其渲染才行。不知道什么原因。啥报错都没有。这个方案也是摸索了好久才搞出来的。
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题