ElementUI中transfer组件左右数据同源问题

问题描述: 在使用element ui组件库中的transfer穿梭框组件时, 遇到一个问题, 由于数据量太大, 所以需要通过附加请求参数来获取到数据源, 这时就出现一个问题, 当搜索条件改变, 获取到的数据改变时, 右侧已经选中的数据也不再显示了, 但是当搜索结果变为上次的数据时, 右侧数据又会出现, 由此可见, 右侧数据并不是消失了, 而是由于左右数据同源的问题, 无法展示在列表中

 

需求: 在搜索条件改变, 数据改变时, 保留右侧数据展示

解决方案: 在获取到搜索结果时, 将右侧已经选中的数据逐个添加进数据源中, 并去重, 由此, 就实现了需要的效果

在常见的情况下, 组件的key为数据的id, label为要展示的数据项的名称/标题, transfer组件通过v-model绑定的数组中, 存放的也只有数据的id, 那么这种时候, 将右侧数据添加进数据源中, 右侧的label名称展示将丢失, 展示的为绑定的key(数据id), 为解决以上问题, 在获取到搜索结果时, 需要通过循环为每一个数据项添加一个额外的属性, 格式为'key|label', 组件设定的props中的key属性, 也绑定为新添加的属性, 这样, 组件绑定的数组中的每一项, 就包含了数据的id和要展示的名称, 再通过简单的操作, 就实现了我们最终需要的效果.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值