You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用出现ReferenceError: image is not defined错误求排查

解决React中ReferenceError: image is not defined错误

错误分析

控制台给出的错误:

ReferenceError: image is not defined
at Card (card.jsx:6:42)

问题出在你的Card组件第6行的className={styles.card-image}上。JavaScript会把styles.card-image解析成styles.card减去变量image,但你根本没定义过image变量,所以触发了这个引用错误——和图片链接本身无关,链接能正常访问是因为这个错误还没到加载图片的环节就触发了。

解决方法

有两种可行的修复方式:

方式1:用方括号访问带连字符的CSS类名

直接修改Card组件里的img标签className写法,把点语法改成方括号语法:

import styles from './card.module.css';

function Card(){
    return(
        <div className={styles.card}>
            <img className={styles['card-image']} src="https://a.espncdn.com/i/headshots/nfl/players/full/4241479.png" alt="profile picture"></img>
            <h2 className={styles['card-title']}>Patrick Mahomes</h2>
            <p className={styles['card-text']}>Football player for the kansas city chiefs.</p>
        </div>
    );
}
export default Card

方括号语法可以正确识别对象属性名里的连字符,不会被JavaScript当成运算符。

方式2:修改CSS类名为驼峰式

把card.module.css里的类名改成符合JavaScript标识符规则的驼峰格式,比如:

/* card.module.css */
.card { /* 原样式保留 */ }
.cardImage { /* 替换原.card-image的样式 */ }
.cardTitle { /* 替换原.card-title的样式 */ }
.cardText { /* 替换原.card-text的样式 */ }

然后组件里用点语法访问:

import styles from './card.module.css';

function Card(){
    return(
        <div className={styles.card}>
            <img className={styles.cardImage} src="https://a.espncdn.com/i/headshots/nfl/players/full/4241479.png" alt="profile picture"></img>
            <h2 className={styles.cardTitle}>Patrick Mahomes</h2>
            <p className={styles.cardText}>Football player for the kansas city chiefs.</p>
        </div>
    );
}
export default Card

这种方式更符合JavaScript的常规写法,后续维护也更直观。

内容的提问来源于stack exchange,提问作者Jace Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:47:21