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