javascript - 尝试在 React 组件中实现 CSS/JavaScript 可折叠
问题描述
我正在尝试将此可折叠菜单实现为反应组件。我很确定我已经正确地输入了所有的 CSS,我认为问题在于 JavaScript。我对 JavaScript 的了解有点不稳定,但是在做了一些研究之后,我发现我可以使用 React Helmet 来包含脚本标签。
组件(文件摘录)
render() {
return (
<div>
<Helmet>
<script src="reactapp\src\Scripts\Collapsible.js" type="text/javascript" />
</Helmet>
我不认为那部分是问题。我认为问题在于 Collapsible.js。
Collapsible.js(整个文件)
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
} else {
content.style.display = "block";
}
});
}
JavaScript 直接来自 w3schools 提供的代码块。JavaScript 代码是否需要存在于被调用的函数中?
现在发生的情况是该按钮按预期显示,但单击它不会导致它展开。这是该部分以防万一。
组件续
<button type="button" className="collapsible">Heart of Algebra</button>
<div className="content" style={{
backgroundColor: "#f1f1f1",
paddingBottom: "150px",
}}>
解决方案
推荐阅读
- vue.js - 安装组件时,VueJS将两个输入的值乘以另一个输入?
- node.js - 当 Flutter 应用程序终止时,普通推送通知会静默出现或根本不出现
- javascript - 如何在单独的类中使用 axios
- python - 将 C++ 代码的输出链接到 python 的最佳方法
- serialization - 浮点数的标准文本表示
- c# - Visual Studio 2017 默认保持文件打开
- kubernetes - Kubernetes - 将数据写入 StatefulSet 卷
- objective-c - 具有可编辑内容的 NSTreeController
- php - get_post_meta 在 WP_Query 循环中不起作用(返回空数组)
- reactjs - 在路线上重新渲染 Ionic React(不想重新加载数据)