错误:
TypeError: __WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.createPortal is not a function
Modal.js:14
11 |
12 |
13 | function Modal(props) {
> 14 | return ReactDOM.createPortal(JSX_MODAL, document.querySelector("#modal"));
15 | }
16 |
17 |
代码:
import React from "react";
import ReactDOM from "react-dom";
const JSX_MODAL = (
<div className="ui dimmer modals visible active">
<div className="ui standard modal visible active">
THIS IS SOME TEXT IN THE MODAL // add some UI features here
</div>
</div>
);
function Modal(props) {
return ReactDOM.createPortal(JSX_MODAL, document.querySelector("#modal"));
}
export default Modal;
它在另一个组件上的render函数中使用{Modal()}
调用。
index.html(仅正文部分):
<body>
<div id="root"></div>
<div id="modal"></div>
</body>
相依性:
"react": "^16.8.6
"react-dom": "^16.0.0-alpha.13",
背景:
我正在尝试使用React门户将模态的内容呈现到它自己的DOM节点。我遵循this tutorial,它基本上为React Docs中所呈现的内容提供了一个简化的概念证明。
我尝试过的方法:
我只能找到one instance of people experiencing a similar issue,他们能够通过安装React〉16.3.0的版本来解决这个问题。我运行的是React版本16.8.6。
3条答案
按热度按时间zujrkrfu1#
我有这个错误,虽然这是一个简单的修复。我说:
而不是:
虽然它没有回答楼主的问题,但它可能会回答未来的开发者。
unftdfkk2#
我发现这将工作,并没有在Chrome控制台警告:
也就是说,使用
react-dom
到createPortal
,以及使用react-dom/client
到creatRoot
。xfyts7mz3#
在我的情况下,而不是使用下面:
更改为:
和工作。