[MessagePlugin] ReactDOM.render is no longer supported in React 18.
tdesign-react 版本
0.35.1
重现链接
https://codesandbox.io/s/modern-fast-zdr7bq?file=/src/App.js
重现步骤
No response
期望结果
No response
实际结果
No response
框架版本
React 18
浏览器版本
No response
系统版本
No response
Node版本
14.15.1
补充说明
ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot
👋 @yancekang,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。
这个问题有点无解,React18 调整了ReactDOM的渲染策略,目前来看还是兼容状态只是警告 但是解决方案要么组件代码使用React18 的写法并且要求用户都用React 18,要么不改但是会有警告
这个问题有点无解,React18 调整了ReactDOM的渲染策略,目前来看还是兼容状态只是警告 但是解决方案要么组件代码使用React18 的写法并且要求用户都用React 18,要么不改但是会有警告
@HQ-Lin 能否根据 React.version 做下处理
这个问题有点无解,React18 调整了ReactDOM的渲染策略,目前来看还是兼容状态只是警告 但是解决方案要么组件代码使用React18 的写法并且要求用户都用React 18,要么不改但是会有警告
@HQ-Lin 能否根据 React.version 做下处理
简单封装个方法 ReactDOM.createRoot??ReactDOM.render 但是警告还是会有 除非我们升到18
这个问题有点无解,React18 调整了ReactDOM的渲染策略,目前来看还是兼容状态只是警告 但是解决方案要么组件代码使用React18 的写法并且要求用户都用React 18,要么不改但是会有警告
@HQ-Lin 能否根据 React.version 做下处理
version是可以区分,关键是 ReactDOM 这个包引用路径都变了
16-17是 import ReactDOM from 'react-dom'
18 则是 import ReactDOM from 'react-dom/client
组件实现的时候就需要获取,但我就算运行时知道是18版本,编译时期我还是用的17版本拿不到最新的 react-dom/client 代码,ReactDOM更不可能要求用户传给我吧。。
刚才尝试了一下区分版本并且都使用 'react-dom' 来实现,一样会有警告,后续找个时间要求用户也升级到React 18 把

这个 Issue 被标记为了过时 stale ,因为它已经持续 30 天没有任何活动了。删除 stale 标签或评论,否则将在 7 天内关闭。
此 Issue 被自动关闭,因为它自被标记为过时 stale 以来已闲置 7 天。
遇到相同的问
这个 Issue 被标记为了过时 stale ,因为它已经持续 30 天没有任何活动了。删除 stale 标签或评论,否则将在 7 天内关闭。
此 Issue 被自动关闭,因为它自被标记为过时 stale 以来已闲置 7 天。