2017-09-25 35 views
0

rowDataとcolumnDefsを小道具として渡しています。グリッドが正しくロードされています。しかし、データが変更されると、グリッドは再レンダリングされません。それは親コンポーネントのレンダリングに来て、AgGridReactに渡されます。しかし、まだ再レンダリングされていません。AgGridReactはデータ変更時に再レンダリングしません

、アプリケーションを完全に反応されているので、私は、メインコードが以下に与えられるhttps://github.com/jintoppy/ag-grid-upgrade

にコードを追加しました。

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

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

答えて

0

この問題が解決されているかどうかは不明です。私はこれのための解決策を持っています。

rosDataをAgGridReactに渡す前にこの問題が発生した場合でも、setRowData(行)API関数を使用して行を更新しようとしました。

gridOptionsに準備が整ったら、gridOptionsにもapiがあり、gridOptions.apiを呼び出してAg-grid APIにアクセスできるようにするか、以下のようにon.GridReadyメソッドでthis.apiを作成できます。

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

this.api = params.api; 

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

}

、あなたは

componentWillReceiveProps(nextProps) { 

    if (!isEqual(this.props.rows, nextProps.rows) && this.api) { 

     this.api.setRowData(nextProps.rows); 
    } 
    } 

は、あなたがコンポーネントからこのことができます

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

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

希望をrowDataの小道具を削除することができ、あなたのcomponentWillReceivePropsでsamethingを呼び出す必要があります...

関連する問題