javascript - TypeError:null 不是对象(评估“overlay.addEventListener”)
问题描述
我正在做一个大项目,但我遇到了一个错误。
这是一个弹出窗口。
我将它添加到我的应用程序 js 文件中。
在我添加之前,一切都很顺利,但现在我遇到了错误。
如果有人知道我的问题是什么,请告诉我。
这是我的代码,我从 HTML、CSS 和 JS 教程中复制了它:
import React from 'react';
import "./Popup.styles.css";
function Popup() {
const openModalButtons = document.querySelectorAll('[data-modal-target]')
const closeModalButtons = document.querySelectorAll('[data-close-button]')
const overlay = document.getElementById('overlay')
openModalButtons.forEach(button => {
button.addEventListener('click', () => {
const modal = document.querySelector(button.dataset.modalTarget)
openModal(modal)
})
})
overlay.addEventListener('click', () => {
const modals = document.querySelectorAll('.modal.active')
modals.forEach(modal => {
closeModal(modal)
})
})
closeModalButtons.forEach(button => {
button.addEventListener('click', () => {
const modal = button.closest('.modal')
closeModal(modal)
})
})
function openModal(modal) {
if (modal == null) return
modal.classList.add('active')
overlay.classList.add('active')
}
function closeModal(modal) {
if (modal == null) return
modal.classList.remove('active')
overlay.classList.remove('active')
}
return (
<div>
<button data-modal-target="#modal">Open Modal</button>
<div class="modal" id="modal">
<div class="modal-header">
<div class="title">Example Modal</div>
<button data-close-button class="close-button">×</button>
</div>
<div class="modal-body">
Lorem ipsum...
</div>
</div>
</div>
)
}
export default Popup
这是我得到的错误:
TypeError: null is not an object (evaluating 'overlay.addEventListener')
Popup
src/Popup.js:17
14 | })
15 | })
16 |
> 17 | overlay.addEventListener('click', () => {
| ^ 18 | const modals = document.querySelectorAll('.modal.active')
19 | modals.forEach(modal => {
20 | closeModal(modal)
请回答,你不会伤害我的感情。
先感谢您!
埃米尔
解决方案
推荐阅读
- github - 是否有更简单/更快的方式来查看 Github 页面
- variables - 访问 Bamboo 密码/密码变量?
- java - 如何使用 2 个具有相同类名/命名空间的 react-native 包
- jsf - Wildfly 以错误开头。javax.faces.FacesException:找不到 CDI BeanManager
- python - 奇偶练习[If-Else]
- powerbi - power bi中多个切片器中的动态选择尺寸?
- rust - 将元组向量转换为具有向量值的哈希图的最佳方法是什么?
- mongodb - 已更新:有没有办法在每次迭代时循环对象并保存/更新 mongodb 文档而不会出现 ParallelSaveError?
- api - 为什么 Instagram 显示“不再支持新注册”
- flutter - 错误:找不到正确的提供者
在此 LoginScreen 小部件上方