我已经搜寻了其他答案,this one最接近我要处理的内容。
但是我的问题仍然存在。我无法访问综合事件的属性。像shiftKey
在某些情况下,我使用的是onClick handler that comes packaged with react-d3-tree library
我认为这只是导致问题的库。但是在单击处理程序中,我可以将事件打印到控制台,并且可以看到shiftKey
参数已按预期设置。但是每次我尝试访问event.shiftKey
时都会收到错误消息:
index.js:1452警告:出于性能原因,此合成事件被重用。如果您看到此消息,那么您正在访问已发布/无效的合成事件上的属性“ shiftKey”。设置为空。如果必须保留原始的合成事件,请使用event.persist()。
请参阅我的代码示例。
答案 0 :(得分:0)
不应依赖对象在控制台中出现的方式。对象是通过JavaScript中的引用传递的。如果在某个时刻更新了对象内部,则它们将在控制台中更新。
persist()
创建事件对象的副本,因此它在被调用时应作为快照显示在控制台中。 persist()
发生了问题,这意味着它出了点问题。
该问题是由第三方组件Tree
from react-d3-tree
引起的。事件对象是异步使用的,用户代码中的persist()
不会有理想的结果,相反,persist()
组件中的Tree
应该被同步调用。