Extjs 网格依赖于外部存储,无法正确呈现

Extjs grid relies on external store, not rendering properly

我有一个带有网格的 Extjs(版本 6,经典 API)面板。这个网格有自己的存储,可以在 initComponent() 中使用。它很好地迭代了这些记录。问题是一列有一个依赖于另一个商店的自定义渲染器。这家商店可能会或可能不会加载取决于几个不同的因素。因此,网格无法正确呈现该列。我发现自己对如何处理这个问题有点头疼。基本概念是该列的值只是一个对用户没有任何意义的键。在非网格存储中查找此键以使用网格列中的渲染器属性正确显示数据。所有代码都执行良好,但这是加载该存储的问题,当它加载时,它不会触发该列的重新呈现,因为它不是网格本身的存储。

我可以在 initComponent() 完成之前同步加载存储,但这并不理想。我不能告诉它在渲染阶段等待商店加载,因为如果商店未加载,这将使该列留空。如果未加载非网格存储,我需要以某种方式触发该列的重新呈现或让它正确等待。有什么想法吗?

据我所知,无法告诉网格重新呈现特定列。所以你将不得不刷新整个网格:

myGrid.on('afterrender',function(grid) {
    externalStore.on('load',function() {
        grid.getView().refresh();
    });
});