【发布时间】:2017-12-26 00:58:12
【问题描述】:
鉴于以下代码,我希望在单击数字 3 时打印输出 3, 2, 1。实际打印输出为1, 3, 2。
这是什么原因?
document.body.onclick = () => {
console.log('1')
}
function Test() {
return (
<div onClick={() => console.log('2')}>
2
<div onClick={() => console.log('3')}>
3
</div>
</div>
)
}
ReactDOM.render(<Test/>, document.querySelector("#root"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<body>
1
<div id="root" />
</body>
【问题讨论】:
-
这很有趣。看起来 React 事件处理在浏览器事件循环之外工作。这可能与 React 使用 SyntheticEvents 有关
标签: javascript html reactjs dom dom-events