使用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)
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐