使用react中,滚动的时候需要动态的setState数据,这个时候发现在滚动回调中发现执行setState的时候,一直在渲染,停不下来这是什么情况,有知道的吗?
1 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
滚动事件触发会很频繁的,用的时候,都会限制一下,一般以时间为单位,比如限制10ms只触发一次.可以在state里面记录时间,然后在触发的函数里面对比,如果大于10ms就执行操作,如果小于就不执行,在执行的时候顺便把state的时间更新为当前时间.可以看看我做的这个例子如果熟悉RxJS的话,用throttleTime操作符来解决会很方便.
添加回答
举报
0/150
提交
取消