项目中需要将Form表单赋值初始值以供修改,但是我用useState设置了选中的值然后initialValues赋值却发现,点击出来显示的始终是上一次点击的值,然后用p标签重新显示这个state,发现又是最新的。
用useEffect也不起作用。我就放弃了使用initialValues,然后使用form.setFieldsValue()直接给form设置值。这下就行了
<ModalForm
title="修改日程"
open={modalVisit1}
onFinish={async (values: any) => {
console.log(values);
const params={
...values,
id: id
}
const res=await scheduleService.updateSchedule(params)
if(res.success){
message.success('修改成功'); // 提示用户提交成功
const res=await scheduleService.getScheduleList()
console.log(res.data);
setMatchList(res.data)
}
return true;
}}
onOpenChange={setModalVisit1}
// initialValues={updateRecord}
form={form1}
width={'40%'}
modalProps={{
destroyOnClose: true,
}}
const [form1] = Form.useForm();
form1.setFieldsValue(res.data)
React hooks 不能拿到最新的的setState的值
useEffect(() => {
setUpdateRecord(updateRecord)
console.log(updateRecord);
}, [updateRecord]);