首页 > 解决方案 > 在 next.js 中将 props 作为类名传递

问题描述

我试图让我的每个应用程序页面的标题根据当前页面更改颜色。我如何努力实现这一目标:

<Header className="headerBitcoin"></Header>

我想要的是能够在所有 4 个页面上都显示标题组件,然后只需将 className 更改为另一个道具即可更改背景,但不会更改其他任何内容。
以及标头组件本身

import styles from "../../styles/Home.module.css";
export default function Header(props) {
  return (
    <div >
      <div className={props.className}>aaaaa</div>
      <div className={styles.row}>
        <div className={styles.tab}>a</div>
        <div className={styles.tab}>a</div>
        <div className={styles.tab}>a</div>
        <div className={styles.tab}>a</div>
      </div>{" "}
    </div>
  );
}

目前选项卡和行的样式正在工作,但标题没有应用其样式。
我检查了控制台,发现标题正在将 classNameheaderBitcoin传递给它,但是它下面的行的 className 是"Home_row__88lPM"
This is my first time with next.js,我知道我做错了,因为这在 React 中有效。任何帮助,将不胜感激。

标签: javascriptcssreactjsnext.jscss-modules

解决方案


不要这样做:

<div className={props.className}>aaaaa</div>

试试这个:

<div className={styles[props.className]}>aaaaa</div>

我认为这应该有效


推荐阅读