I have a functional component called (First)
function First() {
const [count,setCount]=useState(0)
console.log("component first rendering") // this logging is happening twice
return (
<div>
first component
</div>
)
}
when i initially run the application the console
statement is logging twice why is it, It should have been logged only once, because i haven't explicitily updated the state.
I've tried this out in code sandbox here and sure enough, it did render twice. This is because, in the index.js
file, it uses React.StrictMode
.
According to this documentation:
Strict mode can’t automatically detect side effects for you, but it can help you spot them by making them a little more deterministic. This is done by intentionally double-invoking the following functions:
Class component constructor, render, and shouldComponentUpdate methods
Functions passed to useState, useMemo, or useReducer
This is usually to help spot side effects only in the development environment. It does not apply to a production environment.
So if you don't want it to render twice, simply remove the <React.StrictMode> </ React.StrictMode>
in the index.js
file and it'll work normally.
Hope it helps :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With