小编M W*_*man的帖子

AG-Grid React,在数据更改时无法更新自定义单元格渲染器。函数组件的行为与类组件不同

我在整个 React 应用程序中使用 AG-Grid,并且在某些情况下我希望 cellRenderer 在网格数据更改时进行更新。在以下两种情况下,cellRenderer 最初会正确加载,但在数据更改时不会更新:

  1. 用户编辑可编辑单元格并更改值。
  2. 服务器更新redux中的网格数据

看看这个代码和盒子

在此示例中,我使用可编辑单元重新创建了第一个用例,并使用了类组件和函数组件。将 onCellValueChanged 与 params.api.refreshCells() 一起使用,我能够更新类组件,但不能更新函数组件。

第一个问题:如何让 React 函数组件使用新的 props 重新渲染,就像在codesandbox示例中类组件重新渲染一样?

第二个问题:是否有更好的方法来更新 cellRenderer,而无需在数据更新时卸载并重新安装列中的每个单元格?

预先感谢您的帮助和指导!

...
    this.state = {
      columnDefs: [
        {
          headerName: "Editable Country",
          editable: true,
          field: "country",
          width: 200
        },
        {
          headerName: "Class Render",
          cellRendererFramework: GridCellClass,
          colId: "class-renderer",
          width: 200
        },
        {
          headerName: "Function Render",
          cellRendererFramework: GridCellFunction,
          colId: "function-renderer",
          width: 200
        }
      ],
      rowData: []
    };
  }

...

            <AgGridReact
              rowModelType="infinite"
              columnDefs={this.state.columnDefs}
              enableColResize={true}
              rowClassRules={{
                california: function(params) {
                  return params.data.country === …
Run Code Online (Sandbox Code Playgroud)

javascript cellrenderer reactjs ag-grid ag-grid-react

6
推荐指数
1
解决办法
1万
查看次数