javascript - 如何根据状态更改 className 并在功能组件中重新渲染
问题描述
我尝试了多种方法,但无法在功能组件中设置 className。不确定是什么问题。只需检查下面代码中的导航栏菜单,请建议如何解决此问题,我想在每次状态更改时更改 className。
import { useState } from "react";
export function NavBar(){
const [isNavBarBurgerClicked, toggleButtonClicked] = useState(false)
return (
<div className="container">
<nav className="navbar has-shadow">
<div className="navbar-brand">
<a href="/" className="navbar-item is-ghost">
<img className="px-2 px-y" src="https://ik.imagekit.io/7bazciqzz/2043b8a8-cdb4-4006-93a5-eddd61951e65/logo-text_VEUR29gBD.png" alt="Site Logo" />
</a>
<button href="#" className="navbar-burger" onClick={() => {toggleButtonClicked(!isNavBarBurgerClicked)}}>
<span></span>
<span></span>
<span></span>
</button>
</div>
<div className="navbar-menu {isNavBarBurgerClicked ? 'is-active' : ''}">
<div className="navbar-end">
<div className="navbar-item">
<div className="control has-icons-left">
<div className="select">
<select name="Location Select" id="loc_select">
<option value="Kolkata">Kolkata</option>
<option value="Bengaluru">Bengaluru</option>
</select>
</div>
<div className="icon is-small is-left">
<i className="fas fa-map-marker-alt"></i>
</div>
</div>
</div>
</div>
</div>
</nav>
</div>
);
}
解决方案
<div className={`navbar-menu ${isNavBarBurgerClicked ? 'is-active' : ''}`}>
我使用上面的代码来解决它。
推荐阅读
- grails - Grails 4 迁移后无法运行集成测试用例
- r - 将 R 路径转换为 bash 命令的最佳方法是什么?
- tinymce - 从 tinymce 4 到 tinymce 5 的代码迁移 - 动作函数问题(真/假)
- ios - 后台 URLSession 卡住
- c - 消息队列 mq 发送错误。错误的文件描述符
- reactjs - 当地图或过滤器中没有项目时,我想显示不同的内容
- mysql - Docker-compose 数据库表重置
- python - SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 63-64: truncated \UXXXXXXXX escape
- python - Python 和 JSON | 无法使用索引访问字典
- flutter - Dart 测试:期望流不发射任何内容