javascript - 无法在反应中使用 javascript 读取 null 的属性“addEventListener”?
问题描述
我正在尝试使用本机 javascript 来响应绑定事件。实际上我HTML
从服务器获取了一些。我正在使用dangerouslySetInnerHTML
设置 HTML。现在我想在来自服务器的传入 HTML 中绑定一个点击事件这是我的代码
https://codesandbox .io/s/angry-shadow-1c4v8?file=/src/App.js
useEffect(() => {
const alertFunc = function () {
alert("-----");
};
document.querySelector(".btn").addEventListener("click", alertFunc, false);
// Specify how to clean up after this effect:
return function cleanup() {
document
.querySelector(".btn")
.removeEventListener("click", alertFunc, false);
};
});
解决方案
这个问题是因为您的模板 -<button className="btn">set countor </button>
如下所示。
因此,如果您尝试使用类查询选择器进行访问,它将返回未定义。您可以使用class
而不是className
.
return {
__html: '<button class="btn">set countor </button>'
};
工作代码 - https://codesandbox.io/s/brave-meadow-qitjb?file=/src/App.js:87-157
推荐阅读
- vba - 带公式的 For 循环
- sql - 存储为 Json Blob 还是创建列?
- javascript - 覆盖 API CSS REACT
- vba - VBA 在粘贴到循环内部之前评估相邻单元格
- openshift - 如何仅从 oc get dc 检索名称(openshift cli 获取部署配置)?
- java - Jackson - 展开嵌套属性
- python - Pandas:所有可能的行组合
- java - 无法解析方法;可能的依赖问题
- python-3.x - 如何使用相关的关键点拼接两个图像?
- google-apps-script - Google Apps 脚本 getRanges 返回一个包含单个 Range 的列表