当前位置: 首页 > news >正文

一般网站怎么做推广桂林软件开发公司

一般网站怎么做推广,桂林软件开发公司,做网站是否需要自购服务器,汕头自动seoreactts- forwardRef1. 学习资料2. 普通input透传2.1 TS版本2.2 JS版本3. TS-Antd-Form组价透传引用传递(Ref forwading)是一种通过组件向子组件自动传递 引用ref 的技术。对于应用者的大多数组件来说没什么作用。但是对于有些重复使用的组件&#xff0c…

react+ts- forwardRef

  • 1. 学习资料
  • 2. 普通input透传
    • 2.1 TS版本
    • 2.2 JS版本
  • 3. TS-Antd-Form组价透传

引用传递(Ref forwading)是一种通过组件向子组件自动传递 引用ref 的技术。对于应用者的大多数组件来说没什么作用。但是对于有些重复使用的组件,可能有用。例如某些input组件,需要控制其focus,本来是可以使用ref来控制,但是因为该input已被包裹在组件中,这时就需要使用Ref forward来透过组件获得该input的引用。

作者:pipu
链接:https://www.jianshu.com/p/fac884647720/
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

1. 学习资料

JS-react forward ref高阶组件透传-1
JS-react forward ref高阶组件透传-2
TS-react forward ref高阶组件透传

2. 普通input透传

2.1 TS版本

Parent.tsx

import React, { useRef, useState } from 'react'
import Child from './Child';export default function Parent() {const inputRef = useRef<HTMLInputElement>(null);const [text,setText] = useState<string>('');return (<div><button onClick={()=>{inputRef.current?.focus();setText('');}}>父组件内按钮-点击input获取焦点并清空value</button><Child ref={inputRef} text={text} changeVal={(val:string)=>{setText(val);}}></Child></div>)
}

Child.tsx

import React, { ChangeEvent, forwardRef, MutableRefObject, useCallback, useRef } from 'react'interface Iprops {text:string;changeVal:Function
}const Child = forwardRef<HTMLInputElement,Iprops>((props,ref) => {
const localRef = useRef<HTMLInputElement | null>(null);const onChange = useCallback((e:ChangeEvent<HTMLInputElement>)=>{props.changeVal(e.target.value)
},[props]);return (<div><input type="text" value={props.text} ref={el=>{localRef.current = el;console.log(ref)if (typeof ref === 'function') {ref(el);} else if (ref) {(ref as MutableRefObject<HTMLInputElement>).current = el!;}}} onChange={onChange}/><button onClick={()=>{console.log(localRef.current)console.log(localRef.current?.value)console.log(props.text)}}>子组件内按钮-点击获取input输入值</button></div>
)
}) export default Child

2.2 JS版本

Child.tsx

import React, { forwardRef, useCallback} from 'react'
const Child = forwardRef((props,ref) => {const onChange = useCallback((e)=>{props.changeVal(e.target.value)},[props]);return (<div><input type="text" value={props.text} ref={ref} onChange={onChange}/><button onClick={()=>{console.log(ref.current)console.log(ref.current.value)console.log(props.text)}}>子组件内按钮-点击获取input输入值</button></div>)
}) export default Child

3. TS-Antd-Form组价透传

Parent.tsx

import React, { useRef } from 'react'
import type { FormInstance } from 'antd/es/form';
import Child from './Child';export default function Parent() {const addForm = useRef<FormInstance>(null);const updateForm= useRef<FormInstance>(null);return (<div><button onClick={()=>{addForm.current?.validateFields().then((values) => {console.log(values);}).catch((err) => {console.log(err);});}}>父组件内按钮-点击input获取焦点并清空value</button><UserForm ref={addForm} regionList={regionList} roleList={roleList} /><UserForm ref={updateForm} regionList={regionList} roleList={roleList} /></div>)
}

Child.tsx

import React, { forwardRef, MutableRefObject, Ref, useEffect} from "react";
import { Form } from "antd";
import type { FormInstance } from 'antd/es/form';interface UserFormProps {isUpdateRegionDisabled?:boolean;regionList:any[];roleList:any[];
}
const assignRefs = <T extends unknown>(...refs: Ref<T | null>[]) => {return (node: T | null) => {refs.forEach((r) => {if (typeof r === "function") {r(node);} else if (r) {(r as MutableRefObject<T | null>).current = node;}});};
};const UserForm = forwardRef<FormInstance,UserFormProps>((props,ref)=>{const localRef = React.useRef<FormInstance | null>(null);useEffect(() => {console.log('localRef',localRef.current)}, [props]);return (<Form layout="vertical" ref={assignRefs(localRef, ref)}></Form>)
})
http://www.yayakq.cn/news/429117/

相关文章:

  • 网站建设的趋势凡科建站网站
  • 做网站一般需要哪些文件夹婚恋网站女孩子都是做美容
  • 哈尔滨的网站设计做ppt兼职的网站有哪些
  • 广州有哪些网站建设微网站建设包括哪些内容
  • 做网站学的什么专业上海seo网站策划
  • 南京建设局网站网站工商网监标
  • ui做的好的网站有哪些哪个做问卷网站佣金高
  • 好的ppt模板免费下载网站wordpress门户主题下载
  • 网站开发执行什么标准号公司网站建设合同要交印花税吗
  • 莱芜高端网站建设价格精湛的佛山网站设计
  • 做t恤网站 一件也可以做php做网站项目的流程
  • 怡康医药网站建设方案如何制作数据库网站
  • ps设计网站步骤wordpress 简介主题
  • 专业制作网页的公司重庆seo网站
  • 移动终端网站建设泰州建设局网站安监站通报
  • 邵阳营销型网站建设在线外链
  • 济南企业网站设计常州做网站的公司有哪些
  • 高端制作网站哪家专业企业网站建设账务处理
  • 建网站怎么挣钱深圳产品设计师
  • 做网站给女朋友wordpress修改404页面
  • phpcms v9网站性能优化企业门户网站的建设与实现论文
  • 找私人做网站程序费用wordpress注册修改密码
  • 电影网站开发背景重庆seo结算
  • 游戏网站织梦模板深圳搜索排名优化
  • 网站规划的公司无锡集团网站建设
  • 网站服务器物理地址怎么查腾讯企业邮箱入口网址
  • 天津行业网站建设电子商务网站建设实训心得
  • 杭州集团网站建设做奖状的网站
  • 巧克力网站建设需求分析wordpress主题 d8 4.1
  • 太原网站建设加王道下拉刷网站关