有时我的应用程序忙于其他事情,所以在相当长的一段时间内,它对绑定到我的TouchableOpacity组件的触摸事件没有响应。
activeOpacity
属性会使按钮在出现这种重负载时延迟(1-2秒(更改其不透明度,这样用户就不会觉得自己真的按下了该按钮,并一直按下,直到看到反应为止。当然,这会给他们带来一些挫败感。
我的理解是,我认为这些改变不透明性的动画也需要JS和原生方之间的一些沟通。这就是为什么它会受到其他网桥通信的影响,并在一段时间内变得没有响应。
有没有什么方法可以克服React Native方面的这种情况,并使按钮立即改变其不透明性?或者只能通过为此目的创建一个新的本地按钮组件来处理它?
查看requestAnimationFrame
https://reactnative.dev/docs/timers.
"requestAnimationFrame(fn(与setTimeout(fn,0(不同——前者将在所有帧刷新后启动,而后者将尽快启动(在iPhone 5S上每秒超过1000倍(">
将onPress逻辑包装在requestAnimationFrame
中,以便动画发生在逻辑之前。