Reactjs 物料界面:DataGrid/XGrid如何检测密度变化?
我想在用户更改密度表时更改操作图标大小: 当行变小时,右侧的笔图标应改变大小,如下所示: 目前,我使用onStageChange捕获表中的所有更改,并在组件上设置一个状态变量Reactjs 物料界面:DataGrid/XGrid如何检测密度变化?,reactjs,material-ui,Reactjs,Material Ui,我想在用户更改密度表时更改操作图标大小: 当行变小时,右侧的笔图标应改变大小,如下所示: 目前,我使用onStageChange捕获表中的所有更改,并在组件上设置一个状态变量 ... const [density, setDensity] = useState<GridDensity>(); ... const actionEdit: GridColDef = { fie
...
const [density, setDensity] = useState<GridDensity>();
...
const actionEdit: GridColDef = {
field: '',
type: 'action',
align: 'right',
disableColumnMenu: true,
disableClickEventBubbling: true,
resizable: false,
flex: 1,
headerClassName: 'edit-theme-header',
cellClassName: 'edit-theme-cell',
renderCell: () => <EditAction size={density} onClick={() => alert('click')} />
};
...
<XGrid
.....
onStateChange={(v) => setDensity(v.state.density.value)}
/>
。。。
const[density,setDensity]=useState();
...
常量actionEdit:GridColDef={
字段:“”,
键入:“操作”,
对齐:“右”,
disableColumnMenu:true,
disableClickEventBubbling:true,
可调整大小:false,
弹性:1,
headerClassName:“编辑主题标题”,
cellClassName:“编辑主题单元格”,
renderCell:()=>警报('click')}/>
};
...
setDensity(v.state.density.value)}
/>
它可以工作,但onStateChange用于所有状态更改(不仅仅是密度)。
有更好的方法吗?:) 您可以为图标大小声明另一个状态,并在
onStateChange
中更改它
onStateChange={(v)=>{
设置密度(v.状态密度值);
//此处设置图标大小状态
}
然后,将该状态值用作图标大小道具。谢谢您的回复,但我的问题并不存在。网格上的所有事件都将调用“setDensity”,而不仅仅是在密度改变时。它并没有真正优化:)