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

使用MUI Select、Autocomplete等组件时出现栈溢出错误求助

解决MUI组件触发React栈溢出警告(RangeError: Maximum call stack size exceeded)

针对你遇到的MUI组件(Select、Autocomplete、Accordion)复制官方代码仍触发栈溢出警告的问题,以下是几个可行的排查和解决方向:

  • React DevTools版本不兼容
    该警告来自react_devtools_backend.js,大概率是DevTools与当前React或MUI版本不匹配导致的 instrumentation 异常。可以尝试:

    • 将浏览器的React DevTools扩展更新到最新版本
    • 暂时禁用DevTools,观察警告是否消失
  • 升级MUI及依赖版本
    你使用的MUI 5.10.15属于旧版本,可能存在内部兼容性问题。执行以下命令升级到最新稳定版:

    npm update @mui/material @mui/icons-material @emotion/react @emotion/styled
    

    同时确认你的React版本符合MUI 5的要求(需React 17.0.0及以上),版本过低也需同步升级。

  • 修复TypeScript类型定义冲突
    确保@types/react和@types/react-dom的版本与你的React runtime版本完全一致,类型定义不匹配也可能引发异常:

    npm update @types/react @types/react-dom
    
  • 排查组件渲染循环
    虽然你使用的是官方示例代码,但仍需确认项目中是否存在意外的重渲染循环:

    • 检查函数组件中useEffect的依赖项是否正确,避免无限触发更新
    • 避免在组件渲染阶段创建新的对象、数组或函数(你的示例中skills是常量,不存在这个问题)

你的测试代码本身没有问题:

import { Autocomplete, Stack, TextField } from '@mui/material'

const MuiAutocomplete = () => {
    const skills = ['HTML', 'JS', 'CSS', 'React']

    return (
        <Stack spacing={2} width="250px">
            <Autocomplete
                options={skills}
                renderInput={(params) => <TextField {...params} label="skills" />}
            />
        </Stack>
    )
}

export default MuiAutocomplete

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:35:16