6***@tmp.dcloud.io
6***@tmp.dcloud.io
  • 发布:2025-07-16 11:57
  • 更新:2025-07-16 16:05
  • 阅读:34

【报Bug】Vue3 App端 改变:style绑定对象的属性值不会重新渲染元素样式

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10 专业版

HBuilderX类型: 正式

HBuilderX版本号: 4.75

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: Xiaomi 14 Ultra

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template>  
<view>  
    <view :style="viewStyle">{{viewStyle.backgroundColor}}</view>  
    <button @click="handleChangeColor">改变颜色</button>  
</view>  
</template>  

<script>  
export default {  
    data() {  
        return {  
            viewStyle: {backgroundColor: '#0f0'}  
        }  
    },  
    methods: {  
        handleChangeColor() {  
            this.viewStyle.backgroundColor = '#00f'  
        }  
    }  
}  
</script>

操作步骤:

把上述代码放到一个page中,选Vue3,在Android App基座中运行

预期结果:

view中文字和它的背景颜色都改变

实际结果:

view中的文字改变了,但它的背景颜色没变

bug描述:

修改:style绑定对象的属性值,那个值确实改变了,把它放到{{}}中能看到变化,但是元素的样式没跟着重新渲染(如果整个替换:style绑定的对象,可以让样式重新渲染)。
这个问题只出现在Vue3 App端。换成Vue2就没问题,换成web端也没问题。更改:class绑定的对象的属性也没有问题。

2025-07-16 11:57 负责人:无 分享
已邀请:
qjr

qjr

可以尝试把viewStyle放到computed去触发,这样可以渲染出来的。

要回复问题请先登录注册