react中关于父子组件传值已经方法调用总结
问题:
1、封装自定义组件后,父子组件的传值与方法调用则是必须进行的操作,但是在网上看到多种的方法后,
- 有的方法一个组件下好使,但是换一个组件后就不好用了
- 有的方法根本就不好使,不知道是什么原因
2、父子组件之间的传值都是用props这个毫无疑问,也没有什么问题
3、父子组件方法调用则是上面提到的问题了,最终找到了一个使用方法,解决的我遇到的问题
父组件
/*
1 2 3 | <em id= "__mceDel" > * @LastEditors: xxxxx * @LastEditTime: * @Description: useRef( null )、ref={childRef}</em> |
1 |
import React, { useRef, useState } from 'react' import { Button, Modal, Popconfirm, Table, Tabs } from 'antd' import type { ColumnsType } from 'antd/es/table' import DetailModal from './add' import './index.scss' const App: React.FC = () => { const childRef: any = useRef(null) const getSubmitList = item => { // 子组件信息 // console.log('子组件信息', item) console.log('子组件信息', childRef) childRef?.current?.onclick() } return ( <> <Button type='primary' className='add-btn' onClick={getSubmitList}> 新增菜单 </Button> <DetailModal msg={'open'} ref={childRef} /> </> ) } export default App
子组件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /* * @LastEditors: xxxxx * @LastEditTime: * @Description: 父组件传值:props, 父组件调用子组件方法: forwardRef, useImperativeHandle<br><br> */ <em id= "__mceDel" > import { Button, Checkbox, Col, Form, Radio, Rate, Row, Select, Space } from 'antd' import { forwardRef, useImperativeHandle } from 'react' const App = (props, ref) => { console.log( 'msg' , props.msg) useImperativeHandle(ref, () => ({ onclick, })) const onclick = () => { console.log( 'Received values of form: ' ) } return ( <> <Form> </Form> </> ) } export default forwardRef(App) </em> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!