react antd useForm:函数组件中通过useForm创建的表单实例通过form.getFieldValue获取数据undefined的问题
React函数组件推荐使用useForm管理表单数据,使得表单成为非受控组件,不用通过useState创建state维护数据。
·
使用useForm
React函数组件推荐使用useForm管理表单数据,使得表单成为非受控组件,不用通过useState创建state维护数据。
问题:
通过以下语句创建form表单实例,在函数组件内部获取表单中background的值,表单绑定初始值为0 ,显示结果为undefined,但是打印form是有值的,但是在useEffect中打印是可以取到对应值的,useEffect 的函数会在浏览器完成布局与绘制之后执行,在一个延迟事件中被调用。所以考虑延时问题,添加延时函数打印是可以取到对应值的。具体内部怎样实现暂时不知,目前是觉得必要要等页面渲染完成之后才能获取表单初始值,可能存在异步问题,所以在页面渲染时不可以通过form.getFieldValue的值来做逻辑判断,渲染时该值还是undefined
const [form] = Form.useForm();
console.log('11',form.getFieldValue('background'));
useEffect(()=>{
console.log('22',form.getFieldValue('background'));
},[])
setTimeout(()=>{
console.log('33',form.getFieldValue('background'));
},1000)
更多推荐
已为社区贡献1条内容
所有评论(0)