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

ReactJS报错Uncaught TypeError: Cannot set property default求解

报错信息

ReactJS - Uncaught TypeError: Cannot set property default of #<Object> which has only a getter
错误截图

问题原因

错误出在Header.js文件的div类名设置行,手滑多打了一个等号:

// 错误写法
<div className={classes=['main-image']}>

classes是从CSS Module文件导入的只读对象,由webpack的CSS-loader生成,对象属性仅配置了getter访问器,不允许修改/重新赋值。你写的classes=['main-image']本质是在JSX表达式里执行赋值操作,试图重写导入的classes变量,直接触发了只读对象赋值的类型错误。

提供的App.js代码、package.json里的依赖配置都没有问题,React17和react-scripts@5也不存在版本兼容问题,不需要调整依赖。

修复方法

删掉多余的等号,改成CSS Module标准的属性访问写法即可,因为类名是短横线命名的main-image,用方括号访问属性:

// 正确写法
<div className={classes['main-image']}>

修正后完整的Header.js代码如下:

import React, {Fragment} from 'react'
import mealsImage from '../../assets/meals.jpg'
import classes from './Header.module.css'

const Header = (props) => {
  return (
    <Fragment>
        <header className={classes.header}>
            <h1>ReactMeals</h1>
            <button>Cart</button>
        </header>
        <div className={classes['main-image']}>
            <img src={mealsImage} alt='A Table full of delicious meals' />
        </div>
    </Fragment>
  )
}
export default Header

改完保存文件,重启开发服务就能正常运行,不需要做其他改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:18:53