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

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.dtcms.com/a/174320.html

相关文章:

  • 团队协作的润滑剂——GitHub与协作流程
  • 软件测试应用技术(2) -- 软件评测师(十五)
  • ES6/ES11知识点 续五
  • 动手学深度学习12.1. 编译器和解释器-笔记练习(PyTorch)
  • 「Mac畅玩AIGC与多模态21」开发篇17 - 多字段判断与多路径分支工作流示例
  • Hello Robot 推出Stretch 3移动操作机器人 提升开源与可用性
  • 大搜车:借力 OB Cloud 实现经销商管理系统SRP的技术升级
  • 探索Hello Robot开源移动操作机器人Stretch 3的新技术亮点与市场定位
  • 蓝肽子序列--字符串+最长子序列的dp
  • 虚拟现实视频播放器 2.6.1 | 支持多种VR格式,提供沉浸式观看体验的媒体播放器
  • 在 Laravel 12 中实现 WebSocket 通信
  • Redis 7.0中5种新特性及实战应用
  • AI Agent 入门指南:从 LLM 到智能体
  • 人工智能如何革新数据可视化领域?探索未来趋势
  • 【编程干货】本地用 Ollama + LLaMA 3 实现 Model Context Protocol(MCP)对话服务
  • 手撕算法(1)
  • Python-map从基础到进阶
  • 42 python http之urllib库
  • Vue 自定义指令输入校验过滤
  • 【前缀和】矩阵区域和
  • Hadoop架构再探讨
  • 【MongoDB篇】MongoDB的聚合框架!
  • python刷题笔记:三目运算符的写法
  • 高等数学第五章---定积分(§5.1定积分的概念、性质和应用)
  • 【HFP】蓝牙语音通信高级功能解析:快速拨号与呼叫等待协议实现
  • 【日撸 Java 三百行】Day 4(条件语句实战——闰年问题)
  • ORACLE EBS 12.1 启用https 简单策略
  • STM32H743单片机实现ADC+DMA多通道检测+事件组
  • nut-list和nut-swipe搭配:nut-cell侧滑定义无法冒泡打开及bug(含代码、案例、截图)
  • 继电器负载知识