小程序vant

编程入门 行业动态 更新时间:2024-10-26 05:28:42

小<a href=https://www.elefans.com/category/jswz/34/1771429.html style=程序vant"/>

小程序vant

问题

改小程序的时候发现了一个隐藏已久的bug,vant-field设置为textarea类型后,popup弹出来的时候placeholder的文字非常明显,如下图。

如果popup里面的内容和textarea重合,textarea内容还会盖过popup,如下图。

原因

vant-weapp官方说明了textarea是原生组件,层级过高,具体可以看微信官方文档对原生组件的说明。
链接: 微信官方文档

解决办法

网上有很多是用view写一个来代替textarea,但是我的这样弄太麻烦了,所以放弃了。
因为textarea属于原生组件,但是input只在focus时表现为原生组件,也就是说vant-field不是textarea类型,并且没有用focus时不是原生组件,不会出现层级过高的现象。所以在popup显示时将textarea改为text,不显示时再改为textarea类型。效果还行,有时候还是会出现一闪而过的重叠。

<van-field value="{{ workplace }}" label="工作地" placeholder="请选择" right-icon="arrow" bindtap="showPlace" readonly type="{{textarea}}" autosize />
<van-popup show="{{showplace}}" position="bottom" ><van-picker show-toolbar columns="{{ workplaces }}" title='主要工作' bind:cancel="onCancelPlace" bind:confirm="onConfirmPlace"/></van-popup>
showPlace:function() {this.setData({showplace: true,textarea2: "text",textarea: "text"});
},
onCancelPlace(e){this.setData({showplace: false,workplace:"",textarea2: "textarea",textarea: "textarea"})
},
onConfirmPlace(event){this.setData({showplace: false,workplace:event.detail.value,textarea2: "textarea",textarea: "textarea"})
}

更多推荐

小程序vant

本文发布于:2024-02-12 06:24:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1686598.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:程序   vant

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!