收藏
回答

Scroll-View 自定义下拉刷新

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug scroll-view 微信安卓客户端 7.0.10.1580 2.10.2

refresher-triggered属性赋值为false并不能取消动画


====== 3.13自问自答系列======

不知为何已经被标记为已回答了,说是怎么这么久没有人理了。

最后自己找到了答案,是因为不同的scroll-view用了同一个变量来控制refresher-triggered,用独立的即可。

细说,代码如下

可以看到我渲染了多个 `tab` ,每个tab有一个 `scroll-view` ,但是我用了同一个 `flag`,也就是 `this.state.loding`,问题就来了,出问题了

使用一个数组分别做 `flag`,问题解决。

最后一次编辑于  06-13
回答关注问题邀请回答
收藏

4 个回答

  • 保山
    保山
    04-12

    同用taro,也遇到了这个问题,废了几个小时终于解决了。来回答下帮助需要的人:

    参考链接:https://developers.weixin.qq.com/community/develop/doc/0000226ab349b831770a7b47e51400

    原因:scroll-view组件的refresherTriggered属性为true时会触发onRefresherRefresh事件,这里就不停的循环展示loading了,所以需要添加一个flag,可参考官方代码实现https://developers.weixin.qq.com/s/hGFhMum67de0

    04-12
    有用
    回复 1
    • 小叶子
      小叶子
      08-07
      请教一下,你的代码例子里在onReady设置triggered的目的是什么?我并不想要一进来就自动下来刷新,能不能去掉?
      08-07
      回复
  • @
    @
    02-22

    这边是用Taro写的

    02-22
    有用
    回复 8
    • Samy🐍
      Samy🐍
      02-25
      问题有解决吗,我这边也是同样的问题
      02-25
      回复
    • Samy🐍
      Samy🐍
      02-25
      @楊
      02-25
      回复
    • 无痕
      无痕
      02-26
      好巧,我昨天也刚碰到这个问题,花了点时间定位到原因了。

      ScrollView 是非受控组件,你需要在 onRefresherRefresh 时首先将 loading 状态设置为 true,待你的骚操作完成后再将 loading 状态设置为 false。
      02-26
      回复
    • @
      @
      02-28回复无痕
      我这么写就直接拉都拉不下来。
      02-28
      回复
    • @
      @
      02-28回复Samy🐍
      解决了吗?我这里还没解决,暂时搁置了
      02-28
      回复
    查看更多(3)
  • 子不语
    子不语
    02-22

    整个代码片段看看

    02-22
    有用
    回复 1
    • @
      @
      02-28
      bindrefresherpulling ==> loading设置为true
      bindrefresherrefresh ==> 调用接口,结束后loading设为false
      并不能取消这个刷新状态。如果在同一个事件中现设为true再设为false,下来刷新效果都无法显示
      02-28
      回复
  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    02-22

    看下是怎么写的?

    02-22
    有用
    回复
登录 后发表内容
问题标签