解决react项目中event对象打印的值为null

在做react项目的时候,发现event打印到控制台上的属性值均为null,如下图所示:

解决react项目中event对象打印的值为null 

觉得挺奇怪的,怎么可能是null呢,但是在方法里面竟然又能获取到值,这样对调试很不利,有木有?

       其实真正的原因是因为React里面的事件并不是真实的DOM事件,而是自己在原生DOM事件上进行了封装与合成。
合成事件是由事件池来管理的,合成事件对象可能会被重用,合成事件的所有属性也会随之被清空。所以当在异步处理程序(如setTimeout等等)中或者浏览器控制台中去访问合成事件的属性,默认react 会把其属性全部设为null。
       如果就想在控制台输出打印结果怎么办?有没有解决方案呢?答案当然是有的!可以在console.log()前面添加event.persist()或者e..persist(),其实就是将当前的合成事件从事件池中移除了,所以能够继续保有对该事件的引用以及仍然能访问该事件的属性。

解决react项目中event对象打印的值为null