982260355
982260355
  • 发布:2020-04-17 11:47
  • 更新:2020-04-30 11:20
  • 阅读:1072

【报Bug】picker 多列选择器 动态修改其他列 e事件携带的index 错误

分类:uni-app

问题一:picker 多列选择器 动态修改其他列 e事件携带的index 错误
[步骤]
1.创建一个picker,模式选择多列选择器,第一列有两个选项,选中第一项,第二列有四个子选项,选中第二项,第二列有三个子选项。
2.点开picker,选中第一列第一个,第二列第四个,点击完成/确定
3.再次点开picker,选中第一列第二个,点击确定/完成
[结果]
h5,e事件总是返回正确的[1,2]
v3,e事件大概率返回错误的[1,3],偶尔(五分之一的概率)返回正确的[1,2]。
小程序和v2,e事件总是返回错误的[1,3]
[期望]
h5和v3在界面上看picker,应该返回[1,2]
小程序和v2在界面上看picker,应该返回[1,0]

问题二:v3 picker子组件的index改变时,会影响父组件的index
[步骤]
1.创建一个picker子组件,在父组件中传入index数组,子组件使用prop接收并赋值给一个新的变量,用新的变量在picker :value
2.在@columnchange时,修改子组件index的值(若不修改,会出现第一列划不动的问题),在@change时修改父组件的Index的值。
[结果]
小程序和v2模式正常,@columnchange修改子组件index值,父组件的index不会变。@change修改父组件的值。
h5和v3模式,@columnchange修改子组件index值,父组件的index居然一起变了!!!
[期望]
点击确认/完成的时候,父组件的index值才修改。

IDE运行环境说明

[IDE版本号]
HBuilderX 2.6.11.20200409
[windows版本号]
windows 10
[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
全部
[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX创建
[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]
全部

2020-04-17 11:47 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

问题二是你代码里面写的this.multiIndex = this.value,你这样修改multiIndex的话value肯定是会变的

  • 982260355 (作者)

    懂了,是因为js 数组的赋值是索引类型。。。那这样的话,就是小程序上面的表现有问题了。小程序和v2并没有同步更改

    2020-04-17 15:40

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

问题一

期望表现:
h5和v3在界面上看picker,应该返回[1,2]
小程序和v2在界面上看picker,应该返回[1,0]

全端调整为返回[1,0]更合理一些吧

  • 982260355 (作者)

    界面上,picker的表现确实是不一样的,当第二列新的项没有之前多,小程序和v2第二列是直接弹到了第一个,h5和v3是弹到最后一个。页面表现不同,确实可以接受返回不同的结果。

    2020-04-17 15:33

  • DCloud_uniCloud_WYQ

    回复 982260355: 现在修改为不存在时全部弹到第一项,并且返回[1,0]

    2020-04-17 16:52

s***@foxmail.com

s***@foxmail.com

加上:value 绑定索引就行了,亲测

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