Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

picker组件数据更新的时候跳动 和 picker中找到一处代码问题。 #2457

Open
Microanswer opened this issue Jan 30, 2018 · 8 comments

Comments

@Microanswer
Copy link

Microanswer commented Jan 30, 2018

--------------------- 重点内容 ----------------------

在picker组件中,异步更新数据(例如通过网络请求获取的picker数据内容)。每次在更新数据的时候,界面要跳一下。甚至连官方的demo中也会跳一下,那种从下面稍稍往上滑一点的跳动。请问有没有办法让它更新数据的时候不跳一下。

问题图示1:

12

问题图示2:

default

-------------------- 下面为次要内容 ---------------------

今天在解决上面的问题的时候发现picker组件中的一处问题。

问题描述:

在picker中定义了属性 itemClass
在渲染数据的render方法中new Scroller的时候传入的option对象中的itemClass使用的是:_this.item_class

问题所在:

不应该是_this.item_class 而是 _this.itemClass

图示:

_20180130170448

@airyland
Copy link
Owner

popup-picker 目前仅支持全量数据列表,因为不能确定新数据列表和旧数据列表的差别(列数,数量),所以是直接重新渲染,暂不支持部分更新。

@Microanswer
Copy link
Author

恩,我是自己在一个组件里面用的popup嵌套的picker,不是直接使用的popup-picker组件。
在picker中我的数据格式是:

// ...
data () {
    return {
        pickerData: [ [1,2,3,4], [5,6,7,8] ,[9,10,11,12] ]
    }
}
// ...

所以一共就是三列显示, 并没有使用级联动那种数据格式。
不管旧数据是怎么样的,可不可以让重新渲染也不要有那一跳的效果啊。
default
或者怎么样才能杜绝那一跳的效果呀, 能不能帮我想一个解决方案呀。万分感谢
qq 20180130192133

@airyland
Copy link
Owner

popup-picker 是依赖于 picker 的,所以实现上是一致的。后面版本再考虑下如何实现重新渲染无跳动。

@weijian1
Copy link

weijian1 commented Jul 2, 2018

跳动的问题我也遇到,我尝试修复了一下

#2896

@ermu592275254
Copy link

我这边也遇到了这个问题,回溯代码发现是render函数中的

    if (_this.currentValue) {
          _this.scroller[i].select(value[i])
        }

这段代码导致的。把它注释掉就不会闪动了。

@xiuxiu7859
Copy link

这个问题现在解决了吗

1 similar comment
@notFoundTheGuy
Copy link

这个问题现在解决了吗

@naecoo
Copy link

naecoo commented May 26, 2019

这个问题现在解决了吗

并没有

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants