记一个 mint-ui picker 的bug

前端之家收集整理的这篇文章主要介绍了记一个 mint-ui picker 的bug前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我基于mint-ui 的picker 封装了一个select移动端组件





回填数据的时候,封装了 set 方法
官方的例子 是直接通过 重置 defaultIndex 就可以设置到默认的item;
此处我开始用

this.slots[0].defaultIndex = index;

出现了神奇的bug,选择某个item,确定 =》 再拉选其他 =》取消 此时结果正常,picker也恢复到了oldindex;
可是再次去拉选,点取消;发现picker 不能回去了。
只有再次确定选择了(触发父更新了),取消操作才有效;
此处做猜测,最有可能是 组件调用 defaultIndex 会依赖于视图更新,如果视图不改变,defaultIndex只会调用一次,视图更新了,defaultIndex才会重新调用
本例子,由于我只是操作不涉及视图的变量,所以 this.slots[0].defaultIndex = index; 第二次后无效了。
我通过 refresh 组件解决

this.refresh = false;
setTimeout(()=>{
this.refresh = true;
},0)
this.slots[0].defaultIndex = index;

猜你在找的程序笔记相关文章