React Native之手势bug

在这里要说明一下,当时是使用到画廊这些功能的时候导致的。例如react-native-gallery等画廊库。因为需要到放大缩小等功能。这些是正常的。但是要进行多套图进行切换时,遇到了问题。首先第一个问题就是切换2套之后,会导致listView的刷新功能部分出现问题。其实也是自己分装好的。其实原理是一样的,就是使用到了InteractionManager这个组件。这个组件会让你的界面看起来更好。但是如果进行了多套切换之后,导致了这个控件的线程阻塞。进入RN的源码一观就可以看出来使用了Handler这个异步线程。那么如果手势多次切换多套图时。我们的想法肯定是直接替换数据,重新Render一下就好了。可是组重要的问题是,这样导致了一个bug。就是InteractionManager这个组件的线程卡死在那边,这个时候,你整个应用使用到这个组件的数据都完全无法展示。因为线程在等待上面一个线程。无法执行到。那么这个时候我们该怎么办呢?

看里面的源码,就是显示了各种的Handler。而且也包含了clear。其实我们的这个组件是已经使得你使用这个组件销毁界面后自己关闭。所以基本上面你使用很多地方基本不会遇到线程阻塞这个问题。那么我现在在讲述一下关于手势为何造成了那个原因。

里面显示了创建handler这个线程,里面也有关闭的。但是在你render的时候却没有进行关闭。这个时候导致了。线程阻塞,完全没办法使用异步这个功能了。所以,这个时候我们必须想办法关闭。

这个时候这个位子进行一次识别,利用RN的生命周期进行是空值判断。这个时候进行清除关闭异步线程。这个是我自己写的。所以在RN里面一定要注意这些问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值