Javascript agGrid-如何隐藏动态生成的列

Javascript agGrid-如何隐藏动态生成的列,javascript,reactjs,ag-grid,ag-grid-react,Javascript,Reactjs,Ag Grid,Ag Grid React,在React agGridhide:true中,动态生成的列定义不起作用。我的代码片段如下所示: if(data.length>0){ for(数据[0]中的var键){ var obj={} obj.headerName=键; obj.field=键; 如果(对象字段==“操作”){ obj.hide=true; obj.suppressToolPanel=true; } cols.push(obj); } } root.setState({ columnDefs:cols, rowData:

在React agGrid
hide:true
中,动态生成的列定义不起作用。我的代码片段如下所示:

if(data.length>0){
for(数据[0]中的var键){
var obj={}
obj.headerName=键;
obj.field=键;
如果(对象字段==“操作”){
obj.hide=true;
obj.suppressToolPanel=true;
}
cols.push(obj);
}
}
root.setState({
columnDefs:cols,
rowData:数据
},函数(){
console.log(root.state.columnDefs)
});
我的agGrid in render函数如下:



我错过什么了吗?任何帮助都会对我非常有帮助。

更新列状态的正确方法是使用

还请注意:

  • AgGrid版本<24:使用
    ColumnApi.setColumnState()
  • AgGrid version>=24:使用
    ColumnApi.applyColumnState()
const columnState=columnApi.getColumnState()| |[];
columnApi.setColumnState(
columnState.map((c)=>{
if(Math.random()>0.5){
返回{…c,hide:true};
}
返回{…c,hide:false};
})
);
现场演示

但我希望表在默认情况下显示时隐藏很少的列,而不是在单击一些按钮之后。@KOUSIKMANDAL将代码放入
onGridReady
回调中。我的实时演示已经介绍了这一点,该按钮仅用于演示如何以编程方式更新列状态。