首页 > 解决方案 > React 和 ag-grid - 如何更新 `getRowClass` 函数?

问题描述

这是一个演示问题/问题的 StackBlitz:https ://stackblitz.com/edit/react-s9l2kj

(这本质上是来自 ag-grid 网站的示例行类规则代码的修改版本)

当传递给我的组件的属性发生更改时,我有一个getRowClass需要更新的函数。在提供的代码示例中,这被传递给Grid组件(这里是一个精简版):

const Grid = (props) => {
  const getRowClass = (params) => {
    var numSickDays = params.data.sickDays;

    if (numSickDays > props.minDays && numSickDays <= props.maxDays) {
      return 'sick-days-warning';
    };

    return '';
  };

  return (
    <>
      <AgGridReact
        rowData={data}
        columnDefs={columnDefs}
        getRowClass={getRowClass}
      />

      <label>Show warning when: {props.minDays} &lt; sick days &lt;= {props.maxDays}</label>
    </>
  );
}

在 StackBlitz 示例中,Min days正确更新文本框中的值会导致标签重新呈现,表明新属性已正确传递到网格。

问题

为什么getRowClass函数没有更新?在我看来,它AgGridReact正在缓存传递给它的第一个值getRowClass,而不是在getRowClass创建新函数时更新它 - 所以感觉就像一个错误......但是,我可能会误解我应该如何更新getRowClass功能。

标签: reactjsag-gridag-grid-react

解决方案


推荐阅读