解决办法:先判断是不是数组
const key = "something"; let ref = this.$refs[key]; if (ref[0]) ref = ref[0];
缘由:在this.$emit('change', val); 事件发出的时候,cascader 的 checkedValue已经更新了,可是cascader-panel的值还没被更新 element/packages/cascader-panel/src/cascader-panel.vuejavascript
解决办法:把获取值的逻辑放到Vue.$nextTick()方法里面。若是获取label建议直接使
this.$refs['当前cascader'].presentText
这个属性html
更建议看看element-ui源码vue
关于 vue nextTick的解释java