reactjs - NextJS 中的 createPortal
问题描述
我正在尝试创建一个模式,以便在验证并提交表单时,会出现一条感谢消息。该项目设置为 Typescript 应用程序,但我大部分时间都在使用 react.. 需要学习 typescript.. 我已经完成了以下步骤-
- _document.js 文件添加了一个 id 为“modal-overaly:
- 在我的联系表单组件中,我导入 Modal 组件并在发送表单后传递状态。
- 在 Modal 组件中我导入 createPortal- 我创建了一个名为 portalElement = document.getElementById("modal-overlay"); 的变量;
- 如果 showModal 我返回?createPortal(modalContent, portalElememt) : null;
我收到一个错误,说引用错误:未定义文档。
我不确定出了什么问题。非常感谢任何提示!
--Document file--
<div id="modal-overlay"></div>
--Modal Component--
import { createPortal } from "react-dom";
const Modal = (props) => {
const { showModal } = props.show;
const portalElement = document.getElementById("modal-overlay");
const modalContent = () => {
return (
<div>
<h1>
Thank you for your inquire! We have receieved your message! Demelo
Dining is ready to serve your upcoming event.{" "}
</h1>
</div>
);
};
return showModal ? createPortal(modalContent, portalElement) : null;
};
export default Modal;
解决方案
推荐阅读
- python - 如何在线性回归/套索中强制系数为非负?
- r - 如何为 shapiro.test 创建一个循环
- laravel - Laravel 产品变体的深度关系
- visual-studio - VS 2017 如何确定来自 Paket 的 .NET Standard 依赖项?
- utf-8 - UUID 编码为 ascii 而不是 utf-8
- windows - 功能区将仅显示最小化
- java - 仅显示 3 行
标签包含几个
- python - Python Datetime strptime 不带年份,自动插入当前年份
- c# - 如何防止在条件为真时创建类的实例。C#
- android - 我从 Play 管理中心收到以下错误,我无法编辑版本或 Google Play 信息