scroll-view 下拉刷新不触发及refresherTriggered不生效
相关平台
微信小程序
小程序基础库: 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
同样的问题,短时间更改 refresherTriggered 无效
同样的问题,短时间更改 refresherTriggered 无效
同样碰到了
refresherEnabled
refresherTriggered={refreshState}
onRefresherRefresh={() => {
setRefreshState(true);
fetchData(false, 1);
setTimeout(() => {
setRefreshState(false);
});
}}
我也遇到这个问题了 短时间内更新trigger会失效 而且是react的那个taro版本
我也遇到这个问题了 短时间内更新trigger会失效 而且是react的那个taro版本
一样,taro是不是摆烂了
我来拯救大家了, 这个问题现在还有人遇到吗, Taro官方定义的TS类型有问题, 图2的Taro文档中的说明,在小程程序中, bindtouchstart, 在vue3 jsx中,应该写成onTouchstart而不是onTouchStart, 一个字母的大小写引发的血案, 所以图一能看到相关的bind开头的事件, 在TS类型定义都是错的,想要触发刷新事件应该监听onRefresherrefresh, 而不是onRefresherRefresh, 其他事件都是类似