I have a simple counter child Component.
import React, {useState} from 'react'
import classes from './counter.module.css'
const Counter = (props) => {
const [number, setNumber] = useState(0);
const decrementHandler = () => {
setNumber((prevState) => {
if(prevState === 0) {
return 0
}
return prevState - 1;
})
props.onCounterChange(number);
}
const incrementHandler = () => {
setNumber((prevState) => {
return prevState + 1;
})
props.onCounterChange(number);
}
return (
<>
<div className={`${classes['counter-wrap']}`}>
<button className={`${classes['counter-button']} ${classes['decrement']}`} onClick={decrementHandler}>-</button>
<span className={classes['number']}>{number}</span>
<button className={`${classes['counter-button']} ${classes['increment']}`} onClick={incrementHandler}>+</button>
</div>
</>
);
});
export default Counter;
I want to pass the counter value number
to the parent component using props.onCounterChange()
function.
Since State is asynchronous, I am not receiving the latest state value to the parent.
How do I pass the counter value to the Parent Component as soon as the state changes?