may I ask for your help. I'm trying to save or store textbox data to hooks. However, upon clicking the save button the data from textbox is not yet saved to my useState. I need to click again the save button to be able to save it to hooks.
See below codes.
const [updateApprovalStatus, setupdateApprovalStatus] = useState({
ADVISORYID: "",
STATUS: "",
REMARKS: "",
REJECTEDREMARKS: "",
});
const [txtAdvisoryApprovalRemarks, settxtAdvisoryApprovalRemarks] = useState(
""
);
const approvalRemarksOnChange = (event) => {
settxtAdvisoryApprovalRemarks(event.target.value);
};
const updateApproval = () => {
if (updateApprovalStatus.STATUS === "APPROVED") {
setupdateApprovalStatus((prevState) => ({
...prevState,
REMARKS: txtAdvisoryApprovalRemarks,
}));
setupdateApprovalStatus((prevState) => ({
...prevState,
REJECTEDREMARKS: "",
}));
} else if (updateApprovalStatus.STATUS === "REJECTED") {
//console.log('save to rejected remarks')
setupdateApprovalStatus((prevState) => ({
...prevState,
REJECTEDREMARKS: txtAdvisoryApprovalRemarks,
}));
setupdateApprovalStatus((prevState) => ({
...prevState,
REMARKS: "",
}));
}
console.log("updateApprovalStatus", updateApprovalStatus); //returns the array but no remarks or rejectedremarks saved
};
Components
<TextField
className={style.inputMaterial}
label="Remarks"
name="REMARKS"
onChange={approvalRemarksOnChange}
/>
<br />
<Button color="primary" onClick={() => updateApproval()}>
Save{" "}
</Button>
On my first click I got this
{ADVISORYID: 370, STATUS: "APPROVED", REMARKS: "", REJECTEDREMARKS: ""}
On second click, this is where value took effect. upon console log.
{ADVISORYID: 370, STATUS: "APPROVED", REMARKS: "remarks", REJECTEDREMARKS: ""}
Hoping for your understanding Thank you