脱围机制-react18废除forwardRef->react19直接使用ref的理解

采用ref,可以在父组件调用到子组件的功能

第一步:在父组件声明ref并传递ref

复制代码
interface SideOptsHandle {
  refreshData: () => Promise<void>
}
  const sideOptsRef = useRef<SideOptsHandle>(null) // 创建 ref
            <SideOpts ref={sideOptsRef} />

第二步:在子组件接收ref,并通过useImperativeHandle进行脱围

复制代码
interface SideOptsHandle {
  refreshData: () => Promise<void>
}

interface SideOptsProps {
  ref?: React.Ref<SideOptsHandle>
  // 其他 props 可在这里定义
}
const SideOpts = ({ ref }: SideOptsProps) => {

  useImperativeHandle(ref, () => ({
    refreshData: async () => {
      await fetchData()
    },

第三步:父组件使用ref进行使用子组件脱围的对象

复制代码
    if (sideOptsRef.current) {
      await sideOptsRef.current.refreshData() // 调用 SideOpts 的刷新方法
      console.log('刷新成功')
    }
相关推荐
我是一颗柠檬2 分钟前
【Java项目技术亮点】覆盖索引与索引下推优化
android·java·开发语言
云道轩4 分钟前
比较IBM Transformation Advisor 和WebSphere Application Server Migration Toolkit
java·jakarta ee·open liberty·应用迁移
2601_9624408413 分钟前
计算机毕业设计之健身房管理系统的设计与实现
java·开发语言·课程设计·旅游·宠物
TeamDev15 分钟前
JxBrowser 9.3.0 版本发布啦!
java·后端·c#·混合应用·jxbrowser·浏览器控件·异步媒体设备
深盾科技_Virbox19 分钟前
深盾科技·Virbox产品体系全景解读:软件安全如何从加密锁走向全生命周期
java·大数据·算法·安全·软件需求
豆瓣鸡20 分钟前
Knife4j 接口文档
java
aa小小25 分钟前
localhost 访问异常排查笔记
前端
格子软件26 分钟前
2026年GEO优化系统源码的分布式状态机深度拆解
java·前端·vue.js·vue·geo
C++、Java和Python的菜鸟28 分钟前
第1章 集合高级
java·jvm·python
ShiXZ21338 分钟前
PDF-OCR文件识别篇(八):配置、运维与排错
java·运维·ocr·dubbo·springboot