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

react-transition-group 在 React 18 及以上版本中的兼容性问题

出现问题

在React19中下载react-transition-group(4.4.5),正常导入使用:

出现下述报错:

报错原因

React18开始,已废弃findDOMNode ,而 react-transition-group 的 4.4.5 版本仍然使用了 findDOMNode来获取DOM节点,以便在动画中直接使用这些节点,从而导致报错

那么早期react-transition-group是如何使用findDOMNod的那?

1.获取DOM获取 DOM 节点以应用动画:

2.处理动画的生命周期:

为什么被废弃?
1.React18 引入了Concurrent Mode,允许 React 在后台执行工作,并在必要时中断和恢复渲染。 react-transition-group 与 Concurrent Mode 的工作方式不兼容;

2.React 推荐使用更高级别的抽象(如ref)来处理 DOM 操作,而不是直接使用findDOMNode

解决方法:使用ref

  1. 引入useRef

  2. 创建一个ref

  3. 将ref传递给nodeRef属性

  4. 将ref附加到目标 DOM 元素上

import React, { useRef } from 'react';
import { CSSTransition,SwitchTransition } from 'react-transition-group'const MyComponent = () => {const nodeRef = useRef(null); // 创建一个 refreturn (<SwitchTransition mode='in-out'><CSSTransitionnodeRef={nodeRef} key={pictureUrls[currentIndex]}classNames="pic"timeout={200}><img ref={nodeRef} src={pictureUrls[currentIndex]} alt="" /></CSSTransition></SwitchTransition>);
};export default MyComponent;

 

http://www.xdnf.cn/news/4150.html

相关文章:

  • stm32之输出比较OC和输入捕获IC
  • 域名别名(CNAME)解析及域名注册操作步骤
  • 学习海康VisionMaster之间距检测
  • 深度学习系统学习系列【6】之深度学习技巧
  • 36.金属壳体材料的选择与工艺处理对EMC的影响
  • 解决Jenkis安装、配置及账号权限分配时遇到的问题
  • 编译原理期末重点-个人总结——2 文法与语言
  • Gradio全解20——Streaming:流式传输的多媒体应用(6)——RT-DETR模型构建视频流目标检测系统
  • 英伟达语音识别模型论文速读:MOSEL 数据集
  • 滚珠螺杆的精度如何保持?
  • PCI/PCIe Error?设备总线?Bus?
  • 深度学习中学习率调整:提升食物图像分类模型性能的关键实践
  • Python元编程与装饰器:从基础到可视化实践
  • DGI数据治理框架的最佳实践
  • C语言高频面试题——嵌入式系统去访问某特定的内存位置
  • mysql-索引特性和事务管理
  • Pinocchio导入URDF关节为continuous的问题及详细解释
  • C++基础算法10:Bellman_Ford
  • 【交易】量价
  • 【C++】什么是头文件?
  • 论文报错4
  • 如何设计一个为QStackWidget的界面切换动画?
  • DNS解析过程
  • Ansible自动化运维工具
  • 可视化大屏开发全攻略:技术与实践指南
  • Wannier90文件与参数
  • 路由协议(静态路由、RIP、OSPF、BGP)
  • python读取图片自动旋转的问题解决
  • 深入理解 SSG:静态站点生成的原理、优势与实践
  • B4172 学习计划 题解