1***@qq.com
1***@qq.com
  • 发布:2025-12-04 10:37
  • 更新:2025-12-04 10:38
  • 阅读:27

uniapp ios 下 v-if 不显示

分类:uni-app

纪录分享个老阴间bug给各位bro;
在ios下同级v-if第二个v-if不会显示
----手动分割线----

  • 解决方案就是再包一层view,将第二个v-if包进去
  • 
    <!-- IOS在 同级第二个v-if会被吞掉,所以需要在外面套一个view -->  
    <!-- <view v-if="!!bookInfoDetail?.id" style="background-color: red">  
      <text>我能正常加载</text>  
      <text>{{ `2bookInfoDetail?.id: ${bookInfoDetail?.id}` }}</text>  
    </view>  
    <sar-divider />  
    <view>  
      <view v-if="!!bookInfoDetail?.id" style="background-color: blue">  
        <text>我能不能正常加载</text>  
        <text>{{ `3bookInfoDetail?.id: ${bookInfoDetail?.id}` }}</text>  
      </view>   
    </view>  
    -->  
2025-12-04 10:37 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

这是iOS平台下uni-app的一个已知渲染问题。当同级元素中连续使用多个v-if时,由于iOS端WkWebView的渲染机制差异,第二个v-if可能被错误地忽略或合并处理。

解决方案
正如您发现的,需要为第二个v-if添加额外的<view>包裹层,确保每个条件渲染块有独立的父节点。这是当前最稳妥的写法。

原因分析
该问题源于iOS端对DOM树的特殊处理逻辑(类似Vue的渲染函数优化差异),uni-app在编译时未能完全规避此问题。虽然知识库未直接记录此v-if特例,但历史版本中多次修复过iOS渲染问题(如4.14版本修复的keep-alive渲染问题)。

建议

  1. 优先采用您的解决方案(外层加view)
  2. 升级至最新正式版(4.85+)或alpha版(4.86+),部分类似渲染问题已在迭代中修复
  3. 参考条件渲染文档规范写法

若问题仍存在,建议在ask-uni-app提交具体复现案例,标注HBuilderX版本号以便官方定位。

内容为 AI 生成,仅供参考

要回复问题请先登录注册