AgGridReact不会重新渲染数据更改

时间:2017-09-25 12:06:08

标签: ag-grid ag-grid-react

我将rowData和columnDefs作为props传递。网格正确加载。但是,当数据更改时,Grid不会重新渲染。它来到父组件的渲染,并传递给AgGridReact。但是,仍然没有得到重新渲染。

由于它是一个完整的反应应用程序,我在https://github.com/jintoppy/ag-grid-upgrade

中添加了代码

主要代码如下。

hc = hclust(dist(mtcars))
plot(hc, hang = -1)
rect.hclust(hc, k = 3, border = "red")

1 个答案:

答案 0 :(得分:1)

不确定你是否解决了这个问题。我有一个解决方案。

在我将rosData通过props传递给AgGridReact之前,我甚至遇到过这个问题,然后我尝试使用setRowData(rows)API函数更新行。

一旦您的网格准备就绪,您的gridOptions也将具有api,以便您可以通过调用gridOptions.api来访问Ag-grid API,或者您可以在onGridReady方法中创建this.api,如下所示。

onGridReady( params ) {
    const rowData = this.props.rows;

    this.api = params.api;

    if ( rowData.length > 0 && this.api ) {
      this.api.setRowData( rowData );
    }
}

你需要在componentWillReceiveProps中调用同样的东西

componentWillReceiveProps( nextProps ) {
    if ( !isEqual( this.props.rows, nextProps.rows ) && this.api ) {
        this.api.setRowData( nextProps.rows );
    }
}

然后你可以从组件

中删除rowData prop
<AgGridReact
    // properties
    columnDefs={this.state.columnDefs}

     // events
     onGridReady={this.onGridReady}>
</AgGridReact>

希望这会有所帮助......