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

@mui/x-data-grid 7.3.0中valueGetter函数params为undefined问题求助

问题排查与解决方案

针对你在@mui/x-data-grid 7.3.0中遇到的valueGetter参数params为undefined的问题,可按以下步骤排查:

1. 为params添加防御性默认值

先修改valueGetter函数,避免因params为undefined导致报错,同时再次验证参数传递情况:

const columns = dates.map((date) => ({
  field: date,
  headerName: date,
  width: 150,
  valueGetter: (params = {}) => {
    console.log('当前params:', params); // 打印确认参数状态
    const row = params.row || {};
    return row.shares?.[date] || 0;
  },
}))

2. 升级组件版本

@mui/x-data-grid 7.3.0存在部分已知的参数传递异常问题,这类valueGetter参数失效的情况在后续7.x稳定版本(如7.5.0及以上)中已修复,建议升级至最新版验证。

3. 验证动态列的生成逻辑

若升级版本后问题仍存在,可临时替换为硬编码的测试列,排查是否是动态生成列时的变量作用域或数据异常:

// 临时测试列
const testColumns = [
  {
    field: '23/05/2024',
    headerName: '23/05/2024',
    width: 150,
    valueGetter: (params) => {
      console.log('测试params:', params);
      return params.row.shares?.['23/05/2024'] || 0;
    },
  },
];
// 使用测试列替代动态生成的columns
<DataGrid rows={rows} columns={testColumns} pageSize={5} rowsPerPageOptions={[5]} />

如果测试列能正常获取params,说明dates数组的生成逻辑可能存在数据格式或变量污染问题,需进一步排查transformData函数的返回值。

4. 确认行数据的字段匹配

检查dates数组中的日期字符串,与rows里shares对象的键是否完全一致(包括大小写、斜杠格式、无额外空格),格式差异虽不会直接导致params为undefined,但会影响最终返回值的正确性。


内容的提问来源于stack exchange,提问作者Moïse Mulungu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:02:05