Javascript Ag栅极外部滤波不';不响应状态变化

Javascript Ag栅极外部滤波不';不响应状态变化,javascript,reactjs,ag-grid,Javascript,Reactjs,Ag Grid,我一直在努力让Ag Grid的外部过滤响应状态变化。当我更新isExternalFiltered时,doesternalfilterPass回调中的isExternalFiltered的值不会更改。如果我向网格提供一个键,强制它重新提交每个更新,它似乎可以工作,但会导致昂贵的网格重新初始化 我还将注意到,当过滤器更改时,我尝试调用网格api的onFilterChanged方法,但这似乎没有任何效果 这些文档似乎没有任何使用React(或任何框架)进行外部过滤的示例,因此我开始怀疑它是否不受支持

我一直在努力让Ag Grid的外部过滤响应状态变化。当我更新
isExternalFiltered
时,
doesternalfilterPass
回调中的
isExternalFiltered
的值不会更改。如果我向网格提供一个键,强制它重新提交每个更新,它似乎可以工作,但会导致昂贵的网格重新初始化

我还将注意到,当过滤器更改时,我尝试调用网格api的
onFilterChanged
方法,但这似乎没有任何效果

这些文档似乎没有任何使用React(或任何框架)进行外部过滤的示例,因此我开始怀疑它是否不受支持

const Grid=()=>{
const[gridData,setGridData]=useState([]);
const[columnDefs,setColumnDefs]=useState([]);
常量[isExternalFiltered,setExternalFiltered]=useState(false);
/*
为简洁起见省略
*/
报税表(
真的}
DoeSternalFilterPass={node=>{
返回isExternalFiltered
?过滤器功能(节点数据)
:正确;
}}
/>
);
};

有点晚了,但今天早上我遇到了一个类似的问题,我将发布我的发现,以帮助将来有同样问题的人。这是因为ag grid React从不更新isExternalFilterPresent的回调。我将回调存储在一个变量中,使网格重新运行,然后检查从gridApi获取的gridOptions内部的
isExternalFilterPresent
回调,从而确认了这一点。这两个回调总是相同的,这意味着回调isExternalFilterPresent关闭后的任何值都不会更新。解决此问题的方法是对任何
isExternalFilterPresent
关闭的值使用ref,以便始终访问最新的值