【发布时间】:2021-05-21 02:23:31
【问题描述】:
我知道 Synthetic Event,而不是 native dom event,应该是 React App 中处理交互的方式,但我想知道为什么这种行为是太奇怪了。当 React 事件运行良好时,dom 事件总是将状态重置为初始状态。
import React, { useState, useEffect } from "react";
import "./style.css";
export default function App() {
const [num, setNum] = useState(0);
function clickMe() {
setNum(num + 1);
}
useEffect(() => {
document.getElementById("app_btn").addEventListener("click", clickMe);
return () =>
document.getElementById("app_btn").removeEventListener("click", clickMe);
}, []);
return (
<div>
<h1>Hello StackBlitz!</h1>
<div>App {num}</div>
<button id="app_btn">DOM click</button> <br />
<button onClick={clickMe}>React Click</button>
</div>
);
}
完整的项目可以在这里打开https://stackblitz.com/edit/react-wqrmcu?file=src/App.js
【问题讨论】:
标签: javascript reactjs use-effect use-state