我可以请求你的帮助吗?我正在尝试将文本框数据保存或存储到钩子中。但是,单击保存按钮后,文本框中的数据尚未保存到我的 useState 中。我需要再次单击保存按钮才能将其保存到挂钩。
请参见下面的代码。
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
};
成分
<TextField
className={style.inputMaterial}
label="Remarks"
name="REMARKS"
onChange={approvalRemarksOnChange}
/>
<br />
<Button color="primary" onClick={() => updateApproval()}>
Save{" "}
</Button>
在我第一次点击时,我得到了这个
{ADVISORYID: 370, STATUS: "APPROVED", REMARKS: "", REJECTEDREMARKS: ""}
在第二次点击时,这是价值生效的地方。根据控制台日志。
{ADVISORYID: 370, STATUS: "APPROVED", REMARKS: "remarks", REJECTEDREMARKS: ""}
希望得到您的理解 谢谢