问题
使用mintui actions sheet组件,通过方法生成项目如下:
data.userSys.forEach((v, i) => {
this.actions.push({
name: v.orgName,
method: this.switchSys(v.orgid)
});
);
method是点击相应actions执行的方法
结果,方法会依次执行。
过程
查看actions sheet源码,如下
<ul class="mint-actionsheet-list" :style="{ 'margin-bottom': cancelText ? '5px' : '0' }">
<li v-for="( item, index ) in actions" class="mint-actionsheet-listitem" @click.stop="itemClick(item, index)">{{ item.name }}</li>
</ul>
得知,点击时会执行itemClick(item,index),而itemClick方法如下:
itemClick(item, index) {
if (item.method && typeof item.method === 'function') {
item.method(item, index);
}
this.currentValue = false;
}
得知,点击是会携带整个actions,so, 代码整理如下可行:
data.userSys.forEach((v, i) => {
this.actions.push({
name: v.orgName,
method: this.switchSys
orgId: v.orgId //携带的参数放置于此,itemClick会携带整个action
});
);
actions-sheet这个组件,官方可谓是点到为止,想真正知道用法,还是得自己了解源代码。