问题描述:
在ag-grid中,如果您使用的是valueGetter函数,您可能会遇到其无法处理类的实例属性或方法的问题。这是由于它不在类的范围内执行,而是在全局范围内执行。因此,它无法访问类的实例。
解决方案:
为了解决这个问题,您可以使用箭头函数代替valueGetter函数。箭头函数使用类的范围而不是全局范围来执行函数。这样,它将访问类的实例,使您能够访问实例属性和方法。
以下是示例代码:
class MyGridComponent extends Component { constructor(props) { super(props); this.state = { rowData: [ { make: 'Toyota', model: 'Celica', price: 30000 }, { make: 'Ford', model: 'Mondeo', price: 32000 }, { make: 'Porsche', model: 'Boxter', price: 72000 } ] };
this.getColumnDefs = this.getColumnDefs.bind(this);
this.getPriceWithTax = this.getPriceWithTax.bind(this);
}
getPriceWithTax() { return this.props.taxRate * this.props.price; }
getColumnDefs() {
return [
{ headerName: 'Make', field: 'make' },
{ headerName: 'Model', field: 'model' },
{ headerName: 'Price with Tax', valueGetter: params => ${this.getPriceWithTax()}
, volatile: true }
];
}
render() { return (
在上面的代码中,我们使用箭头函数getPriceWithTax代替了valueGetter函数,并将它作为类的方法