关于Cascader组件编辑回显问题(关于地区的级联选择器)(elementUI踩坑)

最近着手的项目有一个地区级联选择的需求,在Cascader中点击选择框动态加载省份,点击省份后动态加载对应城市。这部分描述以及使用方法请参照element官方级联选择器。不过在数据编辑时回显上出了问题。现已解决,描述如下。

问题

  1. 在列表数据为空时添加数据成功(此时并未刷新页面)。
  2. 在不刷新页面情况下对列表数据进行编辑,此时弹框中地区回显正常。
  3. 刷新页面后进行某一条数据的编辑,这条数据地区回显正常。
  4. 再编辑其他数据,回显失效。

总结:如果当前操作的数据是刚刚进行操作过的数据,地区回显正常,刷新页面后,只有进行编辑操作的第一条数据可以回显地区。

解决

在编辑函数中清空Cascader的绑定数据(一般为数组)后,将Cascader组件删除掉(v-if),再利用定时器重新载入Cascader组件。此时再进行组件绑定数据的回显操作正常。

注:为视觉效果,定时器时间最好为0。

<el-cascader v-if="isShow" v-model="value" :props="props" @change="provinceChange"></el-cascader>

this.isShow = false;
// 定时器重新载入组件就可以触发组件拉取数据
setTimeout(() => {
  this.isShow = true;
}, 0);

// 或者利用nextTick
this.isShow = false;
this.$nextTick(() => {
    this.isShow = true;
})
// 重点在于 组件重载就可以了

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值