1***@qq.com
1***@qq.com
  • 发布:2019-11-29 18:40
  • 更新:2019-12-02 11:24
  • 阅读:1071

【报Bug】多级选择器multiSelector

分类:uni-app

详细问题描述

columnchange事件特定情况下会监听不到
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]

1.第二列滚动到日本;

  1. 第一列滚动到欧洲;
  2. 第二列滚动到英国;
  3. 第一列滚动到亚洲

[期望]
第二列会自动回滚到顶部的中国。
但实际并未回滚
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

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

2019-11-29 18:40 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

真机还是微信模拟器?
HBuilderX版本多少?

  • 1***@qq.com (作者)

    HBuilderX版本

    2.4.2.20191115

    微信开发者工具

    2019-12-02 11:29

该问题目前已经被锁定, 无法添加新回复