Можно передать свойство контекста в параметрах сетки. Затем вы можете вызвать родительский метод из средства визуализации ячейки.
https://www.ag -grid.com / JavaScript-сеточного контекст /
Это будет выглядеть так:
class ParentComponent extends Component {
constructor(props) {
super(props)
this.state = {
columnDefs: [
{
headerName: '-',
field: '',
cellRendererFramework: CustomBtn
}
],
}
this.handleStateChange = this.handleStateChange.bind(this)
}
handleStateChange(data) {
/**
* setState...
*/
}
/**
* onGridReady..., onCellClicked etc.
*/
render() {
return (
<div>
<AgGridReact
columnDefs={this.state.columnDefs}
rowData={this.props.rowData}
onGridReady={this.onGridReady}
onCellClicked={this.handleOnCellClicked}
gridOptions={{
context: { componentParent: this }
}}
/>
</div>
)
}
}
export default ParentComponent;
const CustomBtn = (props) => {
const handleClick = (e) => {
e.stopPropagation();
props.context.componentParent.handleStateChange(props.data);
};
return (
<div>
<button onClick={handleClick}>
Change State
</button>
</div>
);
};