javascript - React:在组件中使用 QuerySelectorAll
问题描述
将此 JS 代码与 React 结合的最佳方式是什么?
document.querySelectorAll(".servicesaffectedtag").forEach((tag) => {
tag.addEventListener("click", (event) => {
tag.classList.toggle("active-tag");
});
});
这是需要进入ComponentDidMount()
功能的东西吗?
提前致谢!
解决方案
在 react 中,您可以使用 refs 引用元素。(https://reactjs.org/docs/refs-and-the-dom.html)
但是,更好的解决方案是在每个元素上放置一个 onClick 侦听器,并使用三元运算符( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators)根据状态更改类/Conditional_Operator)像这样:
<tag
onClick={() => { classActive ? setClassActive(false) : setClassActive(true) }} className={classActive ? "active-tag" : "" }
>
</tag>
推荐阅读
- java - 如何使用 Spring Boot JPA 配置动态多数据源
- python - 有没有办法将图像转换为使用 ImageJ Jython 脚本编码的 URL?
- php - 正确使用 mysqli_real_escape_string 进行插入、选择和更新语句 - PHP/Oracle
- r - 从 data.table 中删除所有名称包括“问题”的列都是 NA 的行
- python - 导入包时出现Python导入错误
- laravel - 将 Laravel 应用程序(使用 Voyager 和 Voyager 前端创建)部署到 Google Cloud Compute Engine、Ubuntu 18.04 时出现 404 错误
- image - 如何使用 Julia 显示图像
- reactjs - 使用路由器反应 404 页面
- c++ - 用于插入的指针包装器
- bash - 如果在列中找到模式,则将特定值添加到 bash 中的下一列