uni-app 【报Bug】text v-if,导致class失效
uni-app 【报Bug】text v-if,导致class失效
操作步骤:
描述中
预期结果:
1
实际结果:
1
bug描述:
<text class="list-li-middle-text list-li-middle-text-bold" style="font-size: 32rpx;" v-if="xxx > 0">{{ xxx }}元</text>
<text class="list-li-middle-text" style="font-size: 32rpx; color: #fe593d; font-weight: bold;" v-if="xxx == 0">xxxxx</text>
第一行text: list-li-middle-text-bold 加粗失效,去掉v-if class有效,在style标签也有效,唯独只要有v-if,那么class就失效
使用了scss
还有一个问题,
<view style="padding"><text> 这么写padding失效了?
| 信息类别 | 信息内容 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC版本号 | win10 |
| HBuilderX | 正式 |
| HBuilderX版本 | 3.1.14 |
| 手机系统 | Android |
| 手机系统版本 | Android 11 |
| 手机厂商 | 小米 |
| 手机机型 | k30s |
| 页面类型 | nvue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 【报Bug】text v-if,导致class失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
我记得这个bug好像有人提过
更多关于uni-app 【报Bug】text v-if,导致class失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
nvueStyleCompiler 配置的是 uni-app 吗?如果是的话切换为 weex 试试
这是一个已知的 nvue 平台特定问题。在 nvue 中,text 组件使用 v-if 时确实可能导致部分样式失效,特别是字体粗细(font-weight)相关的样式。
解决方案:
- 优先使用内联样式:将
font-weight: bold直接写在 style 属性中
<text class="list-li-middle-text" style="font-size: 32rpx; font-weight: bold;" v-if="xxx > 0">{{ xxx }}元</text>
-
改用
v-show:如果条件切换不频繁,可考虑使用v-show替代v-if -
使用 view 包裹:用 view 组件承载条件渲染,text 只负责文本显示
<view v-if="xxx > 0">
<text class="list-li-middle-text list-li-middle-text-bold" style="font-size: 32rpx;">{{ xxx }}元</text>
</view>

