我基于mint-ui 的picker 封装了一个select移动端组件
Box" v-model="popupVisible" position="bottom" style="width: 100%;" :clo@R_301_401@nClickModal="false">
我基于mint-ui 的picker 封装了一个select移动端组件
Box" v-model="popupVisible" position="bottom" style="width: 100%;" :clo@R_301_401@nClickModal="false">
回填数据的时候,封装了 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;