uni-app运行至微信小程序端style动态绑定失效问题

一、问题描述:

今天开发遇到了一个前端样式问题。由于业务需要,onLoad()获取到手机屏幕长度然后将长度动态绑定至view标签的sytle属性中,在HbuilderX内置浏览器中显示正常,但在微信小程序中却显示不出来绑定的样式,下面是绑定时的代码。

页面标签部分:

	<view :style="{height:phoneHight}" class="content">
        ... ...
	</view>

script部分:

export default {
		data() {
			return {
				phoneHight:'50upx',
			}
		},
		onLoad() {
			uni.getSystemInfo({
				success:(res)=>{
					console.log("手机可用高度:"+res.windowHeight*2+"upx");
					this.phoneHight = res.windowHeight*2+55+"upx";
				}
			})
		},

二、解决措施

试过了很多方式都不能解决问题,最后发现时微信小程序动态绑定时不能识别upx单位,故在动态绑定时需要将upx转换成px的形式。

错误代码:

this.phoneHight = res.windowHeight*2+55+"upx";

正确代码:

this.phoneHight = res.windowHeight+25+"px";

当然也可以用**uni.upx2px()**函数来进行单位之间的转换

至此,问题解决


版权声明:本文为weixin_43421663原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。