我试图跟踪渲染组件的次数。但是,似乎 renderCounter 每次都会增加 2。
为什么会发生这种情况?我知道使用全局变量是一种不好的做法,但我对发生这种情况的原因很感兴趣。
https://codesandbox.io/s/rendercounter-does-not-increment-correctly-093ok?file=/src/App.js
let renderCounter = 1;
function App() {
const [i, inc] = useReducer((_) => _ + 1, 1);
// render
console.log(JSON.stringify(i), "th click");
console.log("renderCounter", JSON.stringify(renderCounter));
renderCounter = renderCounter + 1;
return (
<div>
<button onClick={inc}>increment</button>
</div>
);
}
export default App;