reactjs - 为什么会显示错误:错误:目标容器不是 DOM 元素,在创建 ReactDOM.createPortal() 并传递 const 变量时
问题描述
在关于 ReactJS 和 context API 的教程中,我试图通过在由 React.Component 扩展的类中创建一个 const 来呈现 Modal 类
import React from 'react';
import ReactDOM from 'react-dom';
import './style.scss';
import { AppContext } from '../../context/appContext';
class Modal extends React.Component {
render() {
const node = (
<div
className="modal-container">
<div className="modal">
<h1>modal</h1>
</div>
</div>
);
return ReactDOM.createPortal(node, document.getElementById('modal'));
}
}
Modal.contextType = AppContext;
export default Modal;
并且在布局类上使用这个类也扩展了 React.Component 并使用 ReactDOM
import Modal from '../modal';
<Modal />
但是当我尝试渲染它时,它给了我我创建的 const 节点的错误,它不是 DOM 元素,也在我遵循的教程中,他没有任何错误。
Error: Target container is not a DOM element.
createPortal$$1 [as createPortal]
> 17 | return ReactDOM.createPortal(node, document.getElementById('modal'));
View compiled
▶ 16 stack frames were collapsed.
解决方案
推荐阅读
- handlebars.net - 无法使用查找助手编译模板 - 签名或安全透明度不兼容
- javascript - 尽管我的路径正确,但在地图上显示某些内容时,我在 laravel 中收到错误 419
- java - 无法在 Electron 旁边安装 NPM 包“java”
- php - CodeIgniter 中的 SQL 查询
- c# - EF 添加实体时,也将其附加到错误的实体但具有相同的属性
- php - 来自 json 解码页面的 preg 匹配
- glm - 如何在 R 中使用 glm() 函数或贝叶斯网络对二项式数据进行等价测试?
- java - Java中相同的密码导致不同的AES密钥
- boost-build - 如何将 Jambase 文件包含到我的构建中?
- ruby - 打印按哈希键排序的哈希数组