tdesign-react icon indicating copy to clipboard operation
tdesign-react copied to clipboard

react 19 中 message js 异常无法弹出

Open xiaody opened this issue 8 months ago • 2 comments

tdesign-react 版本

1.12.2

重现链接

https://stackblitz.com/edit/vitejs-vite-cwhdsbet?file=src%2FApp.tsx

重现步骤

点击重现链接中的「点击以弹出toast」按钮。

期望结果

没有 js 异常,message 正常弹出。

实际结果

message 未能弹出,出现异常 Cannot set properties of undefined (setting 'usingClientEntryPoint')

看起来与 __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 的使用有关。

框架版本

react 19.1

浏览器版本

No response

系统版本

No response

Node版本

No response

补充说明

No response

xiaody avatar Jun 05 '25 09:06 xiaody

👋 @xiaody,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。

github-actions[bot] avatar Jun 05 '25 09:06 github-actions[bot]

可以先用1.12.0这个版本,我们预计接下来会给19专门打个tag来发布 否则无法和目前其他旧的React 版本互相兼容。

uyarn avatar Jun 05 '25 09:06 uyarn

临时解决方案:把 v1.12.0 版本的 react-render.js 拿到 v1.12.2 即可

diff --git a/es/_util/react-render.js b/es/_util/react-render.js
index 0321c136738b906cfb61152b5b88ebd09cc5f70b..ea99606e8605935cd50ec473620b2223cc68da83 100644
--- a/es/_util/react-render.js
+++ b/es/_util/react-render.js
@@ -7,42 +7,13 @@
 import { _ as _asyncToGenerator, r as regenerator } from '../_chunks/dep-9482371f.js';
 import { _ as _typeof } from '../_chunks/dep-d9ee0736.js';
 import { _ as _defineProperty } from '../_chunks/dep-4570e07f.js';
-import * as require$$0 from 'react-dom';
-import require$$0__default from 'react-dom';
+import * as ReactDOM from 'react-dom';
+import { createRoot as createRoot$1 } from 'react-dom/client';
 import '../_chunks/dep-097b28c0.js';
 
-var client = {};
-
-var hydrateRoot;
-var createRoot$1;
-'use strict';
-var m = require$$0__default;
-if (process.env.NODE_ENV === 'production') {
-  createRoot$1 = client.createRoot = m.createRoot;
-  hydrateRoot = client.hydrateRoot = m.hydrateRoot;
-} else {
-  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
-  createRoot$1 = client.createRoot = function (c, o) {
-    i.usingClientEntryPoint = true;
-    try {
-      return m.createRoot(c, o);
-    } finally {
-      i.usingClientEntryPoint = false;
-    }
-  };
-  hydrateRoot = client.hydrateRoot = function (c, h, o) {
-    i.usingClientEntryPoint = true;
-    try {
-      return m.hydrateRoot(c, h, o);
-    } finally {
-      i.usingClientEntryPoint = false;
-    }
-  };
-}
-
 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-var fullClone = _objectSpread({}, require$$0);
+var fullClone = _objectSpread({}, ReactDOM);
 var version = fullClone.version,
   reactRender = fullClone.render,
   unmountComponentAtNode = fullClone.unmountComponentAtNode;

kuoruan avatar Jun 20 '25 08:06 kuoruan

https://tdesign.tencent.com/react/getting-started#%E5%A6%82%E4%BD%95%E5%9C%A8-react-19-%E4%B8%AD%E4%BD%BF%E7%94%A8 Image 可以升级到1.13.0配合使用文档说明使用

uyarn avatar Jul 10 '25 09:07 uyarn