Ag-grid masterDetail模式下 如何获取parent
获取方法
操作detail数据时常常有需要用到parent的场景,Ag-grid文档中没有找到api能获取parent,解决方案如下:
const detailCellRendererParams = (parentGrid) => {
return {
detailGridOptions: {
context: {
parentGrid },
}
};
将parent存在context中,parent的api node 还有data都能获取到了
走过的弯路
开始我并不是这种方式实现的,而是把parent的rowId放在了getDetailRowData中,获取parent的时候用api通过rowId来获取。 然而这种方式有个致命bug,因为getDetailRowData发生在获取新数据的时候,导致rowId永远指向的都是最新展开的detail的parent。这样修改的detail数据,就修改到了其它的parent中。 当然也可以通过其他方式解决,把rowId存一下,我没有继续这种方式,觉得复杂了些,没有上述方案简便。
