AgGridReact не выполняет повторный рендеринг при изменении данных

Я передаю rowData и columnDefs в качестве реквизита. Сетка загружается правильно. Но при изменении данных Grid не выполняет повторную визуализацию. Он поступает на рендеринг родительского компонента и передается в AgGridReact. Но все еще не перерисовывается.

Поскольку это полноценное приложение для реагирования, я добавил код в https://github.com/jintoppy/ag-grid-upgrade

Основной код приведен ниже.

<AgGridReact
        // properties
         columnDefs={this.state.columnDefs}
         rowData={this.props.data}

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

person jintoppy    schedule 25.09.2017    source источник


Ответы (1)


Не уверен, есть ли у вас решение для этого или нет. У меня есть решение для этого.

Даже у меня была эта проблема раньше, когда я передаю rosData через реквизиты в AgGridReact, затем я пробовал обновлять строки с помощью функции API setRowData (rows).

Когда ваша сетка будет готова, ваша gridOptions также будет иметь api, чтобы вы могли получить доступ к Ag-grid API, вызвав gridOptions.api, или вы можете создать this.api в своем методе onGridReady, как показано ниже.

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

    this.api = params.api;

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

и вам нужно вызвать то же самое в своем компонентеWillReceiveProps

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

тогда вы можете удалить опору rowData из компонента

<AgGridReact
    // properties
    columnDefs={this.state.columnDefs}

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

Надеюсь это поможет ...

person Dorai Raju    schedule 03.01.2018