v-if + v-else 踩坑随记 ( 关于 v-else 切换后 导致 el-table 的操作列按钮不显示的问题 )

v-if + v-else 踩坑随记 ( 关于 el-table 的操作列按钮不显示 )

首先, 上错误代码的省略版, 不影响错误展示

<el-drawer
    title="查看详情"
    :visible.sync="detailDialog"
    :direction="'rtl'"
    :size="900">
    <div v-if="show">
    	<el-button type="text" size="small" @click="show=false">查看</el-button>
    </div>
    <div v-else>
    /// 省略了一堆代码
    	<el-table>
            <el-table-column
                align="center"
                label="操作"
            >
                <template slot-scope="scope">
                    <el-button type="text" size="small" @click="toSeeCase(scope.row)">移除</el-button>
                </template>
            </el-table-column>
        </el-table>
    </div>
</el-drawer>

如上代码, 这是在一个侧边弹出的抽屉里写的, 当点击查看切换的时候, el-table能正常展示, 但是操作列的按钮不显示, 需要重新触发一次页面编译才能显示出来

分析el-table的数据没有变化, 所以触发不了视图更新, 导致按钮不显示
el-table 有一个方法, doLayout(), 官方文档的解释如下
在这里插入图片描述
应该也是可以解决这个问题, 我没做尝试, 有兴趣的可以试一下

继续说,v-else 面向百度了一会之后, 没有找到很有用的东西, 有人提到过可能是v-else有个延时, 但没有说的很详细

我的解决办法是把 v-else 改成 v-if=“!show” 这样比调用el-table的方法省事点

懒真的是原罪~ 哈哈

暂且记下, 等找到了原因, 再来补充吧, 也欢迎大佬评论区指点迷津

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值