react 父组件修改子组件的表单数据不生效,下面是子组件涉及的相关代码: useImperativeHandle(ref, () => ({ setValue: (d: any): void => { let param:any = { name: '', description: '' } if(!d) { setOld(false); } else { setOld(true); param.name = d?.name; param.description = d?.description; } console.log('setValue:', param); setData(d); formRef.current?.setFieldsValue(param); }, }));
从您提供的代码片段来看,子组件使用了 useImperativeHandle
来将一个方法 setValue
暴露给父组件,用于更新表单数据。
在 setValue
函数中,首先根据传入的参数 d
设置子组件内部的 data
状态。然后根据这个 data
状态设置表单的初始值。最后,通过 formRef.current?.setFieldsValue(param)
方法将表单的值设置为初始值。
但是,您可能需要检查一下 formRef
是否正确地引用表单组件。另外,您也可以在父组件中控制表单的值,而不是通过子组件暴露的 setValue
方法进行操作。
如果仍存在问题,建议提供更全面的代码信息或提供报错信息以便更好地诊断问题。