一个bug,至少卡了我3个小时,记录一下
react的useCallback 在特定环境下 无法更新最新的方法 以及方法中的数据也无法更新。
特定环境为window自己的事件监听使用了useCallback的返回方法,因为事件监听会在第一次监听的时候缓存你的方法,导致事件触发的时候 一直是用的缓存方法,从而导致值无法更新
解决方案就是useCallback内部依赖的值全部用useRef包起来 创造一个闭包空间就好了,虽然监听的是缓存方法,但是闭包空间一直在,所以可以取到最新的值。
有时间写一个完整的demo,再试一下。