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

MUI X DataGridPro自定义工具栏报Could not find the data grid context问题咨询

问题成因
  • 包导入混淆:项目同时安装了@mui/x-data-grid(社区版)和@mui/x-data-grid-pro(专业版)两个包,若从社区版包导入工具栏相关组件(比如GridToolbar、GridToolbarColumnsButton等),而外层使用的是专业版的DataGridPro组件,两个包的上下文实例不互通,就会找不到对应的Grid上下文。
  • 组件挂载位置错误:自定义工具栏组件没有作为DataGridPro的components属性中Toolbar的对应值传入,直接在DataGridPro组件外部渲染,导致无法访问到DataGrid内部注入的上下文。
  • 版本不匹配:两个DataGrid相关包版本虽然都标注为^4.0.0,但实际安装的小版本存在差异,上下文API不兼容导致识别失败。
解决方案
  • 统一组件导入来源:所有和Data Grid相关的组件(包括DataGridPro、所有工具栏组件)统一从@mui/x-data-grid-pro包导入,不要混用@mui/x-data-grid的导出,不需要的话可以直接卸载社区版包:npm uninstall @mui/x-data-grid。
  • 正确挂载自定义工具栏:将拆分后的自定义工具栏组件,通过DataGridPro的components属性传入,示例代码如下:
import { DataGridPro } from '@mui/x-data-grid-pro';
import CustomToolbar from './CustomToolbar'; // 拆分的独立工具栏组件

function MyGrid() {
  return (
    <div style={{ height: 600, width: '100%' }}>
      <DataGridPro
        rows={rows}
        columns={columns}
        components={{
          Toolbar: CustomToolbar // 在此处传入,不要在DataGridPro外部直接渲染CustomToolbar
        }}
      />
    </div>
  );
}
  • 统一依赖版本:确保@mui/x-data-grid-pro和项目中其他MUI相关依赖版本兼容,4.x版本的Data Grid适配Material UI 4.x,你的核心依赖版本符合要求,可重新安装依赖锁定版本:删除node_modules和package-lock.json/yarn.lock后重新执行安装命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:27:03