sagalbot/vue-select 选中元素变动事件(:on-change 踩坑)

博客围绕在Vue中根据选中元素获取计算属性的场景展开。指出computed无法满足需求,分析官方文档后发现@change不起作用,给出正确做法是使用:on-change=\changeProduct\,并提及该方法接受当前选中元素为参数,还存在一个坑。

场景

  • 需要根据选中元素为依赖获取一个计算属性(array), 此时computed不能满足

分析

官方文档的介绍

/**

  • An optional callback function that is called each time the selected
  • value(s) change. When integrating with Vuex, use this callback to trigger
  • an action, rather than using :value.sync to retreive the selected value.
  • @type {Function}
  • @param {Object || String} val
    */
    onChange: {
    type: Function,
    default: function (val) {
    this.$emit(‘input’, val)
    }
    },

但是 @change是不起作用的
@input 可以捕捉change 事件, 且v-model还是在的

方案 && 遇到的坑

正确做法

:on-change=“changeProduct”
这个方法接受一个参数(当前选中的元素)

这里有个坑

:on-change=function 触发事件 ;但是如果使用这个方法的话 v-select上的v-model将不在起作用 && computed自然也不会触发

源码

  <v-select :options="list_product_type" placeholder="请选择产品" :on-change="changeProduct" v-model="product_type" label="product_name"></v-select>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值