reactjs - 如何切换一个类并更改 Nextjs 中的 CSS?
问题描述
我正在开发一个 Next.js 项目,其中菜单通过<p>
切换菜单类打开。我设法做到了这一点,但是当我在 CSS 中添加类时,它并没有考虑到这两个类。
这是我的代码:
零件
import { useState } from "react";
import styles from "../styles/modules/header.module.scss";
export default function Component() {
const [isModal, setIsModal] = useState(false);
return (
<div>
<p onClick={() => setIsModal(!isModal)}>Menu</p>
<div className={`${isModal && "nav-open"} ${styles.ModalContainer}`}>
Content
</div>
</div>
);
}
SCSS
.ModalContainer {
position: absolute;
left: -100vw;
&.nav-open {
left: 0;
}
}
当我检查代码时,我可以看到当我单击菜单按钮时它添加了类,但看不到预期的变化。有人有解决方案吗?
解决方案
在这种情况下,您需要使用作用域 Sass 模块文件中的类styles["nav-open"]
。简单的设置"nav-open"
将引用一个可能不存在的全局类。
export default function Component() {
const [isModal, setIsModal] = useState(false);
const contentClassname = isModal
? `${styles["nav-open"]} ${styles.ModalContainer}`
: styles.ModalContainer;
return (
<div>
<p onClick={() => setIsModal(!isModal)}>Menu</p>
<div className={contentClassname}>Content</div>
</div>
);
}
推荐阅读
- java - 如何摆脱对“compareTo(T)”警告的未经检查的调用?
- reactjs - 道具通过时反应未定义
- apache-flink - Flink Streaming Job 执行图分析
- windows - 制作一个批处理脚本转发一个IP
- google-maps - 通过webapp调用参数?
- javascript - 使用 Firebase 和 Azure 从 Microsoft 获取验证码时出错
- api - Sonos Cloud API:audioClip 同步分组播放
- python - Python:如何将 N 行从一个文件移动到另一个文件
- html - 为什么我的侧边栏中的所有内容都移位了,我该如何解决?
- mysql - Prisma 2 docker 容器无法连接 MySQL 数据库容器