【问题标题】:AG-Grid: Is there a way to receive a callback when a custom Tool Panel renders?AG-Grid:有没有办法在自定义工具面板呈现时接收回调?
【发布时间】:2022-01-27 07:20:29
【问题描述】:

我在 ag-grid 中创建了一个 custom Tool Panel component,我需要知道它何时呈现到 DOM,以便我可以使用这些 DOM 元素。

我实际上是在尝试在面板中放置另一个 ag-grid,并等待它呈现,以便我可以调用 new agGrid.Grid()

我很难找到一种干净的方法来做这件事,而且不会让人觉得很麻烦,任何帮助/指导都将不胜感激。

【问题讨论】:

    标签: ag-grid


    【解决方案1】:

    您可以为此使用toolPanelVisibleChanged 事件,如下所示:

    onToolPanelVisibleChanged: (params) => {
      if (params.source === <panel ID here>) {
         // ... code here
      }
    },
    

    这里的工作示例:https://plnkr.co/edit/vWYKcbKXfofEhrWn

    如果您只需要代码运行一次,则在加载组件时,将所需的任何代码添加到组件的 init 方法中:

    此处示例:https://plnkr.co/edit/DLyh6HpIRJn8diSS

    【讨论】:

    • 谢谢,我玩过 onToolPanelVisibleChanged,我只希望它在初始渲染时触发,所以我必须在变量中跟踪它,例如:plnkr.co/edit/B023m6G8Txl9tRuh 有一个缺点但是,如果此工具面板不是默认的,则在用户单击它之前它不会呈现。在我的情况下,我希望在用户单击侧边栏之前开始呈现,以便在用户单击时加载和呈现内容。
    • 我在 CustomStatsToolPanel 中确实有一个非常 hacky 的解决方案 plnkr.co/edit/6ORvnsCPB4tOlbkQ 我添加了 html &lt;img src onerror="alert('hacky')"&gt; 因为没有“src”,只要它调用 onerror。这实际上很有效,即使它让我觉得很脏。我只是希望有更优雅的东西。我考虑过观看 DOM 并等待添加内容,但这似乎有点过头了。
    • @SeanBannister 我在上面的示例中添加了更多代码,展示了如何在组件加载时运行代码。希望对您有所帮助。
    • @GuihermeLopes 谢谢,将代码放入 Init() 的问题是它在 getGui() 之前被调用,而我需要知道 getGui() 何时完成,在渲染 DOM 之后,所以我可以与 DOM 交互。因此我的 hacky 解决方案。
    猜你喜欢
    • 2018-07-05
    • 2022-09-29
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2020-06-14
    • 2021-07-15
    相关资源
    最近更新 更多