taro icon indicating copy to clipboard operation
taro copied to clipboard

scroll-view 下拉刷新不触发及refresherTriggered不生效

Open JusteenJia opened this issue 2 years ago • 6 comments

相关平台

微信小程序

小程序基础库: 2.30.2 使用框架: Vue 3

复现步骤

1、vue3 ts 环境中,<scroll-view onRefresherRefresh> 依然不触发刷新,还是只能写成 <scroll-view onRefresherrefresh>。
但是再tsx中,因为ts声明文件中声明的emit为refresherRefresh,所以报错。初步解决方案是<scroll-View onRefresherrefresh> 但是这样的写法。
2、触发刷新后,refresherTriggered={xxxx} 不生效的问题。初步解决方案为添加key,及key的值需要每次执行下拉刷新时进行改变, 否则第二次下拉刷新refresherTriggered={xxxx} 依然不生效,但是这样会有一定的性能问题。初步判断是refresherTriggered的值发生 改变时,组件内部并未对其进行监听导致的。
3、taro版本及相关代码

"@tarojs/cli": "3.6.2",
"@tarojs/webpack5-runner": "3.6.2",
refresh: () => {
            state.proxy.refresherTriggered = true;
            nextTick(() => {
              state.proxy.refresherTriggered = false;
            })
          }


<scroll-View
          scrollY
          class={BusinessModule.business_containers_content}
          refresherEnabled
          enhanced
          showScrollbar={false}
          refresherTriggered={state.proxy.refresherTriggered}
          onRefresherrefresh={handlers.action.data.refresh}
          key={state.proxy.refresherTriggered}
        >
....
</scroll-View>

期望结果

希望可以使用正确的驼峰命名。 解决refresherTriggered不生效的问题

实际结果

refresherTriggered等使用驼峰命名 refresherTriggered正确生效

环境信息

Taro v3.6.2
  Taro CLI 3.6.2 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 18.12.1 - D:\application\nodejs\node.EXE
      Yarn: 1.22.15 - D:\developSoft\nodeJs\node_global\yarn.CMD
      npm: 9.3.1 - D:\application\nodejs\npm.CMD

JusteenJia avatar Mar 15 '23 02:03 JusteenJia

同样的问题,短时间更改 refresherTriggered 无效

lrxiang222 avatar Apr 21 '23 03:04 lrxiang222

同样的问题,短时间更改 refresherTriggered 无效

同样碰到了

sheiy avatar Oct 10 '23 06:10 sheiy

        refresherEnabled
        refresherTriggered={refreshState}
        onRefresherRefresh={() => {
          setRefreshState(true);
          fetchData(false, 1);
          setTimeout(() => {
            setRefreshState(false);
          });
        }}

BarrySong97 avatar Dec 09 '23 08:12 BarrySong97

我也遇到这个问题了 短时间内更新trigger会失效 而且是react的那个taro版本

Alndaly avatar Dec 27 '23 03:12 Alndaly

我也遇到这个问题了 短时间内更新trigger会失效 而且是react的那个taro版本

一样,taro是不是摆烂了

peijunlei avatar Aug 12 '25 07:08 peijunlei

Image Image

我来拯救大家了, 这个问题现在还有人遇到吗, Taro官方定义的TS类型有问题, 图2的Taro文档中的说明,在小程程序中, bindtouchstart, 在vue3 jsx中,应该写成onTouchstart而不是onTouchStart, 一个字母的大小写引发的血案, 所以图一能看到相关的bind开头的事件, 在TS类型定义都是错的,想要触发刷新事件应该监听onRefresherrefresh, 而不是onRefresherRefresh, 其他事件都是类似

panchaoco avatar Nov 27 '25 03:11 panchaoco