场景:使用setFieldsValue给form设置表单的值
const handleUpdata = (i)=>{
// 设置modal对话框展开
setIsUpdateVisible(true);
//设置form表单组件展示值
updateForm.current.setFieldsValue(i)
}
报错:
是因为:react中状态更新不一定是同步的,导致对话框模块还没显示,也就是表单还没挂载就调用了setFieldsValue,所以报错
解决:使用async/await和setTimeout。
(看网上有人说将from表单组件化也可以解决。但是现在这个报错就是在from表单组件化的场景下发生的。。。所以,有兴趣的可以去研究研究)直接上代码:
第一种解决方法:setTimeout
const handleUpdata = (i)=>{
// 设置modal对话框展开
setIsUpdateVisible(true);
//设置form表单组件展示值
setTimeout(()=>{
updateForm.current.setFieldsValue(i)
})
}
第二种解决方法:async/await
const handleUpdata = async(i)=>{
// 设置modal对话框展开
await setIsUpdateVisible(true);
//设置form表单组件展示值
updateForm.current.setFieldsValue(i)
}