React Hooks与TypeScript的一些使用心得——组件之间的Hooks传递

一、前言

用到的语言及框架如下:
1.React
2.TypeScript
3.Ant Design Pro

二、父组件的Hook传递给子组件使用

场景描述:父组件和子组件共用一个< Form>,我在子组件中想要赋值给其输入框,要用到userForm()的setFieldsValue()方法,但是,在父组件中已经声明了Form.userForm(),那么子组件就不能再声明一次Form.userForm(),如果声明了,则会报错,这时就要用到本文的Hook传递了,实现如下:

1.子组件
(1)在子组件中写一个接收父组件Hook的接口,如下:

interface SonProps{
  formHook?:any;    //传递父组件的form hook,参数类型记得要用any
}

(2)然后在SonForm里面调用Hook:

const {form}=props.formHook;

子组件完整代码如下:

import { Form,Input } from 'antd';
import React from 'react';
interface SonProps{
  formHook?:any;    //传递父组件的form hook
}

const FaterForm: React.FC<SonProps>=props=>{
	const {form}=props.formHook;  //Hook
	form.setFieldsValue({input2-1:'data1',input2-2:'data2'});
	return(
	        <Form.Item name="input2-1" label="input2-1">
	           <Input /> 
		     </Form.Item>
		     <Form.Item name="input2-2" label="input2-2">
		         <Input /> 
	          </Form.Item>
)
}
export default SonForm

2.父组件
(1)父组件定义的Hook如下:

const [form] = Form.useForm();  //使用form Hook

(2)在父组件引用的子组件时把Hook对象写上去,如下:

<SonForm formHook={form} /> 

父组件完整代码如下:

import { Form,Input } from 'antd';
import React from 'react';
impot SonForm from './SonForm'
const FaterForm: React.FC<>{
const [form] = Form.useForm();  //使用form Hook
return(
       <Form>
        <Form.Item name="input1" label="input1">
	      <Input /> 
	    </Form.Item>
	    <Form.Item name="input2" label="input2">
	       <SonForm formHook={form} /> 
	    </Form.Item>
       <Form>
       )
}

export default FaterForm
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值