uni-app 三元运算动态计算class,数据改变后不生效,不再动态计算

本文讲述了在uni-app中遇到的一个动态计算view class的bug,当数组list长度变化时,class并未实时更新。作者发现此问题在Vue环境下正常工作,但在uni-app环境下出现异常。最后,通过使用Vue的computed属性成功解决了这个问题,动态生成了正确的class名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个uni-app上使用三元运算符的问题,动态计算class,class名会根据数组的长度来决定是否显示‘active’,

<view class="footer" :class="list.length > 0 ? 'active' : ''">
  <van-button type="default">查询</van-button>
</view>

list初始长度为0,当list长度变化后,这里的动态class却不再重新计算,view上显示的class始终是‘footer’,而不是‘footer active’,也没摸清什么原因,这在vue上写是完全没问题的,用uni-app就遇到了这种现象,最后是通过computed动态计算class解决的。

解决办法

<view :class="getFooterClass">
  <van-button type="default">查询</van-button>
</view>
computed: {
  getFooterClass () {
    return this.list.length > 0 ? 'footer active' : 'footer'
  }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值