I have this code.
<Grid item md={4} sm={2} xs={12}>
<TextField
label="Qty"
name="qty"
id="qty"
variant="filled"
type="number"
fullWidth
onChange={itemChange}
value={item.qty}
></TextField>
</Grid>
<Grid item md={4} sm={2} xs={12}>
<TextField
label="Unit price"
name="unitPrice"
variant="filled"
type="number"
fullWidth
onChange={itemChange}
value={item.unitPrice}
></TextField>
</Grid>
In my itemChange method, I console log the e.target
const itemChange = async (e) => {
console.log("e", e.target);
setItem({ ...item, [e.target.name]: [e.target.value] });
};
I got this
But I expect to get an object. So then I can use target.value or target.name.
Why could this happen?

e.targetis the element that triggered the event (in this case, the input). What were you expecting it to be?onChangeofTextFieldfromMUIyou should acess it like in most cases.e.target.value. Wheretargetis a DOM node that triggered the event and value is the actual value captured by theonChangeevent