react Hook如何获取函数子组件的中form表单的值或者组装后的值

17 篇文章 0 订阅

需求:需要获取到函数自组件中form表单组装后的数据。
解决:如果只是函数子组件中form表单中的数据,这个比较简单,直接传onLoad函数,回传函数子组件的form,然后该调用的时候直接调用即可,但是如果是需要子组件form表单中的数据组装后拿回,那这个就会有点问题,当时的解决方式是通过把子组件改成class类的形式,给子组件加ref,然后通过ref调用子组件中组装数据返回数据的方法实现的,下面提供一种纯粹reactHook获取子组件组装数据的方法。

interface Prop{
	onLoad:(form:any)=>void
}
const Acom:React.FC<Prop>=({onLoad})=>{
	const TransData = {
	    validateFields: () =>
	      new Promise((resolve, reject) => {
	        setEditeIndex(index => {
	          if (index > -1) {
	            message.info('请先完成编辑!');
	            reject('请先完成编辑!');
	          } else {
	            setData(data => {
	              resolve(data );
	              return data ;
	            });
	          }
	          return index;
	        });
      }),
  };
  useEffect(()=>{
  //一家在就传传递这个给调用的组件
  	onLoad&&onLoad(TransData)
  },[])
}

外面组件调用举例

const Bcom=()=>{

const [dataForm,setDataForm]=useState();
async function getData(){
let data=await dataForm.vaidataFileds()//通过这种方式获取函数子组件的值
}
return (
	<Acom
        onLoad={(form: any) =>setDataForm(form)}
      ></Acom>
)
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值