要解决"AgGridReact - 当isRowSelectable变化时,网格不会更新"的问题,可以使用AgGridReact组件的onGridReady事件来监听网格准备就绪的事件,在该事件中进行isRowSelectable属性的更新。下面是一个示例代码:
import React, { useState } from 'react';
import { AgGridReact } from 'ag-grid-react';
import 'ag-grid-community/dist/styles/ag-grid.css';
import 'ag-grid-community/dist/styles/ag-theme-alpine.css';
const App = () => {
const [rowData, setRowData] = useState([]);
const [isRowSelectable, setIsRowSelectable] = useState(true);
const gridOptions = {
onGridReady: (params) => {
params.api.sizeColumnsToFit();
},
isRowSelectable: (rowNode) => {
return isRowSelectable;
},
};
const toggleRowSelectable = () => {
setIsRowSelectable((prevIsRowSelectable) => !prevIsRowSelectable);
};
const columnDefs = [
// 列定义
// ...
];
return (
);
};
export default App;
在上面的代码中,我们使用useState钩子来管理isRowSelectable和rowData状态。通过点击按钮来切换isRowSelectable的值。在gridOptions中,我们设置了一个onGridReady事件处理程序来确保网格准备就绪后调整列的大小。我们还设置了isRowSelectable属性,使用当前的isRowSelectable状态值。
当点击按钮时,toggleRowSelectable函数将会更新isRowSelectable状态的值,导致AgGridReact组件重新渲染,并且isRowSelectable属性也会更新,从而触发网格的更新。
请确保安装了ag-grid-react和ag-grid-community的依赖,并且正确导入和使用AgGridReact组件。