当状态发生变化时,mui 数据网格中的 onStateChange 方法就会被触发。 在页面加载期间,这种情况发生了 6 次以上。
所以我提出了一个临时解决方案: 即
<DataGrid
onFilterModelChange={(model, details: any) => {
refLoaded.current = true;
updatedProps.onFilterModelChange?.(model, details);
}}
onSortModelChange={(model, details) => {
refLoaded.current = true;
updatedProps.onSortModelChange?.(model, details);
}}
onColumnVisibilityModelChange={(model, details) => {
refLoaded.current = true;
updatedProps.onColumnVisibilityModelChange?.(model, details);
}} />
有更好的解决办法吗?
下面是 DataGrid 停止 onStateChange 持续调用的函数。 可以具有比较filterCount或sortModel的功能:
onStateChange={(e) => {
if (JSON.stringify(this.state.filteredCountFAGrid) !== JSON.stringify(e.pagination.rowCount)){
console.log("new sort", e.pagination.rowCount);
this.setState({
filteredCountFAGrid: e.pagination.rowCount
});
}
}}