【发布时间】:2019-10-19 04:04:57
【问题描述】:
我一直在努力让 Ag-Grid 的外部过滤器响应状态变化。当我更新isExternalFiltered 时,doesExternalFilterPass 回调中isExternalFiltered 的值不会改变。如果我向网格提供一个键来强制它重新呈现每个更新,它似乎可以工作,但它会导致昂贵的网格重新初始化。
我还要注意,当过滤器更改时,我尝试调用网格 api 的 onFilterChanged 方法,但这似乎没有任何效果。
文档似乎没有任何使用 React(或任何框架,就此而言)进行外部过滤的示例,所以我开始怀疑它是否不受支持?
const Grid = () => {
const [gridData, setGridData] = useState([]);
const [columnDefs, setColumnDefs] = useState([]);
const [isExternalFiltered, setExternalFiltered] = useState(false);
/*
Omitted for brevity
*/
return (
<div className="ag-theme-material">
<AgGridReact
// omitted for brevity
columnDefs={columnDefs}
rowData={gridData}
isExternalFilterPresent={() => true}
doesExternalFilterPass={node => {
return isExternalFiltered
? filterFunction(node.data)
: true;
}}
/>
</div>
);
};
【问题讨论】:
标签: javascript reactjs ag-grid