当前位置: 首页 > 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;

 

相关文章:

  • 团队协作的润滑剂——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 自定义指令输入校验过滤
  • 【前缀和】矩阵区域和
  • 燕郊个人网站建设/重庆网站seo搜索引擎优化
  • 哪里有做网站app的/seo搜索优化技术
  • 天猫商城官方网站/商城推广
  • 怎么优化一个网站/重庆森林电影高清在线观看
  • 前端做的比较好的网站/长春seo网站排名
  • 西安市高新区建设规划局网站/免费二级域名分发