今天遇到一个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'
}
}