详细问题描述
columnchange事件特定情况下会监听不到
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
[步骤]
1.第二列滚动到日本;
- 第一列滚动到欧洲;
- 第二列滚动到英国;
- 第一列滚动到亚洲
[期望]
第二列会自动回滚到顶部的中国。
但实际并未回滚
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
[IDE版本号]
[windows版本号]
[mac版本号]
uni-app运行环境说明
[运行端是h5或app或某个小程序?]
微信小程序
[运行端版本号]
1.02.1910120
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX创建
[编译模式是老模板模式还是新的自定义组件模式?]
新的自定义组件模式
App运行环境说明
[Android版本号]
[iOS版本号]
[手机型号]
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
<template>
<view>
<view class="uni-list-cell-db">
<picker mode="multiSelector" :range="multiArray" :range-key="num" :value="multiIndex" @columnchange="bindMultiPickerColumnChange">
<view>{{multiArray[0][multiIndex[0]].name}}
{{multiArray[1][multiIndex[1]].name}}
{{multiArray[2][multiIndex[2]].name}}</view>
</picker>
</view>
</view>
</template>
<script>
export default {
data() {
return {
arr: [{
name: "亚洲",
child: [{
name: '中国',
child: [{
name: "北京",
},
{
name: "深圳",
}
]
}, {
name: '日本',
child: [{
name: "北海道",
},
{
name: "东京",
}
]
}]
}, {
name: "欧洲",
child: [{
name: '法国',
child: [{
name: "曼彻斯特",
}, {
name: "曼gu",
}]
}, {
name: '英国',
child: [{
name: "伦敦",
}]
}]
}],
child: "child",
num: "name",
multiArray: [
[{
name: "1"
}],
[{
name: "2"
}],
[{
name: "3"
}],
],
multiIndex: [0, 0, 0],
}
},
mounted() {
this.multiArray = [];
this.multiArray[0] = this.arr;
this.multiArray[1] = this.arr[0][this.child];
this.multiArray[2] = this.arr[0][this.child][0][this.child]
},
methods: {
bindMultiPickerColumnChange: function(e) {
if (e.detail.column == 0) {
this.multiIndex[0] = e.detail.value;
// this.multiIndex[1] = 0;
// this.multiIndex[2] = 0;
this.multiArray[1] = this.arr[this.multiIndex[0]][this.child];
this.multiArray[2] = this.arr[this.multiIndex[0]][this.child][0][this.child];
this.multiIndex.splice(1, 2, 0, 0);
} else if (e.detail.column == 1) {
// this.multiIndex[2] = 0;
this.multiIndex[1] = e.detail.value;
this.multiArray[2] = this.arr[this.multiIndex[0]][this.child][this.multiIndex[1]][this.child];
this.multiIndex.splice(2, 1, 0);
}
this.$forceUpdate()
},
}
}
</script>
联系方式
[QQ]1171089830
1***@qq.com (作者)
HBuilderX版本
2.4.2.20191115
微信开发者工具
2019-12-02 11:29