The useState hook is not working for me. In props.data
I am getting the array.
I am trying to update the array of objects, but rendering is not working:
const MenuList = (props)=>{
const [enteredData,setEnteredData] = useState(props.data);
const amountChangeHandler = (event)=>{
const findElementId = event.target.attributes.alter.value;
const item = props.data.find(item => item.id === findElementId);
item.amount = parseInt(document.getElementById(findElementId).value);
console.log(props.data);
setEnteredData(props.data);
}
return(
<ul>
{enteredData.map((item)=><li key={item.id} className={classes['cart-item']}>
<div>
<h2>{item.mealName}</h2>
<div className={classes.summary}><i>{item.mealDescription}</i>
<span className={classes.price}>${item.price}</span>
<span className={classes.amount}>x {item.amount}</span>
</div>
</div>
<div className={classes.actions}>
<div><label htmlFor={item.id}>Amount </label>
<input type='number' id={item.id} defaultValue='1' ></input>
</div>
<button alter={item.id} onClick={amountChangeHandler}>+Add</button>
</div>
</li>) }</ul>
)
}
export default MenuList;