问题:在业务中使用了viewUI,但是在使用select下拉框时,莫名的发现一个问题,其中的on-change事件是在option发生改变的时候触发,但是在页面刚进来的时候也会触发这个事件,就感觉莫名奇妙,不知道是不是一个bug,但是还是最终解决了,解决方法如下;
html:
<Select v-model="searchValueObj.sfrom" style="280px" size="small" multiple :max-tag-count="3" @on-change="handleSelectChange" @on-open-change="allowedChange"> <Option v-for="item in contentPool" :value="item.value" :key="item.value">{{item.label}}</Option> </Select>
methods里的方法
allowedChange (val) { this.allowed = val //下拉框展开或收起触发 返回true/false }, handleSelectChange (val) { if (this.allowed) { //...... //处理逻辑 } }
这个小技巧就是和on-open-change事件相结合,第一次页面渲染的时候不会触发此函数,因此默认为false,当下拉框展开选择下拉项的时候返回true,因此避免了第一次的触发