vue+vxe-table中的vxe-table-column配合v-if导致列样式与位置错乱的现象


根据需求,对vxe-table的某一列进行判断显隐时,经常会出现列的位置错乱和表头的样式变化的问题以及有值但是不显示的问题;
注:此问题不属于技术问题

   <vxe-table-column 
   		v-if="pageInfo.id === 4 ||pageInfo.id === 8" 
   		title="上报类型" 
   		width="100" 
   		key='1'>
          <template v-slot="{row}">
            <span v-if="row.reportType == 1">API</span>
            <span v-else>咨询工具</span>
          </template>
    </vxe-table-column>

修改后

   <vxe-table-column 
   		v-if="pageInfo.id === 4 ||pageInfo.id === 8" 
   		title="上报类型" 
   		width="100" 
   		key='1'>
          <template v-slot="{row}">
            <span v-if="row.reportType == 1">API</span>
            <span v-else>咨询工具</span>
          </template>
    </vxe-table-column>
    //或者
       <vxe-table-column 
   		v-if="pageInfo.id === 4 ||pageInfo.id === 8" 
   		title="上报类型" 
   		width="100" 
   		:key="Math.random()">
          <template v-slot="{row}">
            <span v-if="row.reportType == 1">API</span>
            <span v-else>咨询工具</span>
          </template>
    </vxe-table-column>

给使用了v-if的列,加一个固定的key值,或循环渲染key即可;

Logo

前往低代码交流专区

更多推荐