react Hook如何獲取函數子組件的中form表單的值或者組裝後的值

需求:需要獲取到函數自組件中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>
)
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章