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存一下,我没有继续这种方式,觉得复杂了些,没有上述方案简便。

经验分享 程序员 微信小程序 职场和发展