如何在 Nextjs 中切换类并更改 CSS?

2024-03-05

我正在开发一个 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>
    );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Nextjs 中切换类并更改 CSS? 的相关文章

随机推荐