CSS 未检索到模块值

CSS Modules Value is not retrieved

我在我的 React 应用程序中使用 CSS 模块。根据道具值,如果它是蓝色或白色,我想使用来自“样式”导入的受人尊敬的 class。但是,当我 运行 代码并检查 p 元素时,我看到 class 名称显示为“styles.blue-text”,但它的值不是从相关的 css 文件。为什么不应用它,尽管 class 名称已正确获取。

import React,{useEffect, useState} from "react"
import DarkBlueRightArrow from "../../../resources/images/shared/darkblue-right-arrow.svg"
import styles from "./LeftSidedCircularDarkBlueArrowButton.module.css"


const LeftSidedCircularDarkBlueArrowButton = props => {

  const [color,setColor] = useState("")

  useEffect(() => {
      if(props.color === "white")
        setColor("styles.white-text")
      if (props.color === "blue")
        setColor("styles.blue-text")
  });

  return (
    <a href={props.detailLink}>
      <div className="d-flex align-items-center justify-content-ceter">
        <img className={styles.icon} src={DarkBlueRightArrow} alt="" />
        <p className={color}>{props.text}</p>
      </div>
    </a>
  )
}

export default LeftSidedCircularDarkBlueArrowButton

- 与点对象表示法一起使用时无效。您必须改用括号表示法。

另外state可以用props计算的时候就不需要了

...
const LeftSidedCircularDarkBlueArrowButton = props => {

  /* const [color,setColor] = useState("") */

  /* useEffect(() => {
      if(props.color === "white")
        setColor("styles.white-text")
      if (props.color === "blue")
        setColor("styles.blue-text")
  }); */

 const color = props.color === "white" ? styles['white-text'] : styles['blue-text']

  return (
    <a href={props.detailLink}>
      <div className="d-flex align-items-center justify-content-ceter">
        <img className={styles.icon} src={DarkBlueRightArrow} alt="" />
        <p className={color}>{props.text}</p>
      </div>
    </a>
  )
}
...

这就是为什么 CSSModules 更喜欢用驼峰命名法命名 class 名称,以避免使用方括号。