Vue Tab栏显示顺序混乱(tab栏内容不显示)

在Vue中使用iview的Tab组件时遇到显示顺序混乱的问题,当某些TabPane通过v-if条件不显示时,重新显示所有TabPane会导致顺序错误。问题源于使用v-if与TabPane的渲染顺序有关。解决办法是在每个TabPane上添加:index属性并赋予递增数值,确保渲染顺序正确。通过设置index='1', '2', '3',修复了Tab栏的显示顺序和内容缺失问题。
摘要由CSDN通过智能技术生成

Vue Tab栏显示顺序混乱(tab栏内容不显示)

问题情况

在这里插入图片描述

代码

使用Vue的框架 iview

<Tabs type='card' v-model='activeName' @on-click='clickTabs'>
 <TabPane v-if="isNotNull(setup) " name="first" label="配置" >
   <temp ref="formData" :options="widgetOptions.setup"/>
 </TabPane>
 <TabPane v-if="isNotNull(data)" name="second" label="数据" >
   <temp ref="formData" :options="widgetOptions.data"/>
 </TabPane>
 <TabPane v-if="isNotNull(position)" name="third" label="坐标">
   <temp ref="formData" :options="widgetOptions.position" />
 </TabPane>
</Tabs>

原因

  • 论述发生情况(相同的小伙伴可以进行尝试)

v-if均为true时是没有问题的,但 当其中v-if=false,即某一tab栏从不显示时,显示还是没有问题的。当我执行另一操作,v-if均为true时,就发生了前面展示的问题

  • 原因(官方文档:TabPane props):
    在 TabPane 使用 v-if 时,并不会按照预先的顺序渲染,这时可设置 index,并从小到大排序(需大于 0)

解决方案

<Tabs type='card' v-model='activeName' @on-click='clickTabs'>
 <TabPane v-if="isNotNull(setup) " name="first" label="配置" :index='1'>
   <temp ref="formData" :options="widgetOptions.setup"/>
 </TabPane>
 <TabPane v-if="isNotNull(data)" name="second" label="数据" :index='2'>
   <temp ref="formData" :options="widgetOptions.data"/>
 </TabPane>
 <TabPane v-if="isNotNull(position)" name="third" label="坐标" :index='3'>
   <temp ref="formData" :options="widgetOptions.position" />
 </TabPane>
</Tabs>
Mon 06 Mon 13 已完成 进行中 计划中 现有任务 美好的生活从每一次记录开始
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值