使用taro开发小程序遇到的一些问题

    技术2022-07-11  100

    需求:小程序ScrollView标签下拉时,在ios用户按住拉动区域不放开的情况下,不会页面抖动并重复请求数据

    处理方式:ios端开启ScrollView自定义下拉监听,在页面持续按住不放或者中止下拉的情况下把下拉状态关闭,下拉复位后再请求数据。android端则使用onScrollToUpper的方法直接请求数据。

    兼容原因:在小程序ScrollView标签开启refresherEnabled下拉功能时,安卓端页面下拉和复位不够流畅。

     

    onUpper() { this.init('flagReset');//刷新整页面 } onRefresherPulling = (e) => { this.setState({ triggered: true }, () => { setTimeout(() => { this.setState({ triggered: false }) }, 2000) }) } onRefresherRestore = () => { this.init('flagReset');//刷新整页面 } onRefresherAbort = (e) => { this.setState({ triggered: false }) } render(){ let isIos = Taro.getSystemInfoSync().system.indexOf("iOS") != -1 return(<ScrollView scrollY onScrollToUpper={isIos ? null : this.onUpper} refresherEnabled={isIos} refresherTriggered={isIos ? this.state.triggered : false} onScrollToLower={this.onLower} onRefresherPulling={isIos ? this.onRefresherPulling : null} onRefresherRestore={isIos ? this.onRefresherRestore : null} onRefresherAbort={isIos ? this.onRefresherAbort : null} > </ScrollView>) }

     

    Processed: 0.010, SQL: 9