当前位置: 首页 > Web前端 > vue.js

vueelementui单选多选踩坑解决

时间:2023-04-01 12:31:55 vue.js

vue单选多选切换,会报错,childrenmustbekeyed:原因是切换过程中错误栈在vue内部使用场景:封装el-select组件,传不同的值渲染不同的下拉选项,multiple=true时渲染多选框,multiple=false就是渲染一个单选框,第一次在弹出框渲染单选的时候,第二次渲染多选,然后在操作drop的时候控制台报很多错误-向下框[Vue警告]:无效的道具:道具“值”的类型检查失败。预期的字符串,数字,得到Array.TypeError:无法在VueComponent.handleQueryChange(element-ui.common.js?ccbf:8469)atVueComponent.value(element-ui.common.js?ccbf:8366)在Watcher.run(vue.esm.js?efeb:4571)在flushSchedulerQueue(vue.esm.js?efeb:4313)在Array.eval(vue.esm.js?efeb:1989)在flushCallbacks(vue.esm.js?efeb:1915)弹出框第一次显示不会报错,多次出现弹出框,且有单选或多选切换时,红色部分未定义时调试代码,所以导致错误,我不知道是什么原因造成的。这行代码的作用是什么?在社区咨询了其他人,解决了。之前我的key值是一个下标,导致Vue认为单选和多选是同一个组件,没有强制刷新组件https://cn.vuejs.org/v2/的特殊属性api/#keykey主要用在Vue的虚拟DOM算法中,用于在新旧节点比较时识别VNode。在没有键的情况下,Vue使用一种算法来最小化动态元素,并尝试尽可能多地就地修改/重用相同类型的元素。使用key时,会根据key的变化重新排列元素的顺序,并移除key不存在的元素。具有相同父元素的子元素必须具有唯一键。重复键会导致渲染错误。https://segmentfault.com/q/10…