reactjs - 如何在 ag-grid 单元格渲染器 reactjs 中添加 onclick 事件并访问类函数
问题描述
我想在时间列定义时为 reactjs 中的 ag-grid 表列添加一个按钮。onclick 我需要调用一个类函数。我想创建 onclick 事件并将参数值传递给函数并从那里进行 api 调用。
columnDefs = [{
..... {
headerName: "View",
field: "id",
sortable: false,
filter: false,
colId: "view",
cellRendererFramework: function(params) {
return <Button onclick = {
this.handleClick
} > Test < /Button>
},
},
......
];
}
handleClick() {
console.log("some API call and state change");
}
render() {
return ( <
div >
<
div id = "myGrid"
style = {
{
height: "100%",
width: "100%"
}
}
className = "ag-theme-material" >
<
AgGridReact enableSorting = {
true
}
groupSelectsChildren = {
true
}
rowData = {
this.state.organization
}
columnDefs = {
this.columnDefs
}
onGridReady = {
this.onGridReady
} >
<
/AgGridReact>
<
/div>
}
export default OrganizationList;
解决方案
不要在列定义中使用 cellRenderer,而是使用 cellRendererFramework,这样 agGridReact 就会知道您正在返回 jsx 元素。
例如:
colDefs = [{ ...{
headerName: "View",
field: "id",
colId: "view",
cellRendererFramework: function(params) {
return <button onClick={ this.handleClick }> Test </button>
},
},
....
}]
也不要忘记将单元格渲染器函数绑定到您的组件类构造函数,否则您将无法访问this
.
推荐阅读
- r - 在 R 中具有可变宽度的数据表中使用 Rollapply
- python - Python字典查找具有复合键属性的值
- python - 如何使用第二个屏幕从 kivy 的文本字段中提取文本?
- swift - @EnvironmentObject 在传递到多个控制器时被多次跟踪?
- python - 执行以下代码时显示“str”对象不可调用错误
- python - 按钮命令问题 tkinter
- .net - 尝试使用 VB.NET 获取 Discord 频道列表
- javascript - 迭代和打印没有初始键和多个条目的 JSON
- visual-studio-code - 如何删除命令行错误:无效的宏定义:Visual Studio Code (VSCode) 中的 __STDCPP_DEFAULT_NEW_ALIGNMENT__=16
- python - 如何传递函数(外部编写)并分配给 pandas python 中的列?