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>
)
}



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React,可以通过向组件传递props的方式,将父组件的表单数据传递给组件。 首先,在父组件创建一个表单,然后将表单数据存储在父组件状态。接下来,将状态作为props传递给组件组件使用这些props来渲染自己的内容。 下面是一个例: ```javascript import React, { useState } from 'react'; import ChildComponent from './ChildComponent'; function ParentComponent() { const [formData, setFormData] = useState({}); const handleInputChange = (event) => { const target = event.target; const value = target.type === 'checkbox' ? target.checked : target.value; const name = target.name; setFormData({ ...formData, [name]: value }); } return ( <div> <form> <label> Name: <input type="text" name="name" value={formData.name} onChange={handleInputChange} /> </label> <br /> <label> Email: <input type="email" name="email" value={formData.email} onChange={handleInputChange} /> </label> </form> <ChildComponent formData={formData} /> </div> ); } export default ParentComponent; ``` 在上面的代码,我们创建了一个名为`ParentComponent`的父组件。该组件包含一个表单,在表单我们使用useState Hook来存储表单数据。在表单项的onChange事件,我们使用setFormData函数来更新表单数据。 接下来,我们将表单数据作为props传递给组件`ChildComponent`: ```javascript import React from 'react'; function ChildComponent(props) { return ( <div> <h2>Form Data:</h2> <p>Name: {props.formData.name}</p> <p>Email: {props.formData.email}</p> </div> ); } export default ChildComponent; ``` 在上面的代码,我们创建了一个名为`ChildComponent`的组件。该组件接收一个名为`formData`的props。我们使用这些props来渲染表单数据。 这样,我们就可以在父组件将表单数据传递给组件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值