reactjs - React 和 ag-grid - 如何更新 `getRowClass` 函数?

标签 reactjs ag-grid ag-grid-react

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

(这实际上是来自 ag-grid 网站的 Example Row Class Rules 代码的修改版本)

我有一个 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 函数。

最佳答案

请尝试在 gridOptions 字段中定义 getRowClass 函数并将其分配给 Ag-grid。

const gridOptions = {
    // all rows assigned CSS class 'my-green-class'
    rowClass: 'my-green-class',

    getRowClass = (params) => {
    if (params.data.sickDays > 8) return 'sick-days-breach';

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

    return '';
  };
}

<AgGridReact
        rowData={data}
        columnDefs={columnDefs}
        getRowClass={getRowClass}
        gridOptions = {gridOptions}
       />

关于reactjs - React 和 ag-grid - 如何更新 `getRowClass` 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61538361/

相关文章:

reactjs - 使用react-select作为弹出自定义单元格编辑器时,ag-grid中的键盘事件出现问题

reactjs - 第二个 flex 元素的背景颜色也适用于第一个元素?

javascript - 将状态数组值转换为键值对

javascript - AGGrid 与 react ,调用 this.gridApi.sizeColumnsToFit();不适合列

ag-grid - 使用 forEachNode 的行选择非常慢

javascript - ag-Grid 中的 cellRenderer 函数可以返回 React 组件吗?

angular - 农业网格 : Disable cell edit on key press and pro grammatically enable row edit with edit button (Angular 2)

javascript - 如何在 React v16.13.1 中使用 React Router v5 和 Hooks 获取位置路径名?

javascript - 警告 : React. createElement : type should not be null, 未定义、 bool 值或数字

Angular 5 编译期间未拾取 CSS 类