【问题标题】:Error in AG Grid when using valueGetter when defining ColumnDefs定义 ColumnDefs 时使用 valueGetter 时 AG Grid 出错
【发布时间】:2020-06-19 12:59:51
【问题描述】:

第一次写到这里,如果我写的不对,请见谅。 在 React 中将值导入我的 AG 网格时,我正在尝试将字符串的值类型更改为整数。为了做到这一点,我创建了这个列标题:

 {
    headerName: "calc inline clicks",
    field: "adsetstats_inline_link_clicks",
    aggFunc: "sum",
    valueGetter: params => {
        return parseInt(params.data.adsetstats_inline_link_clicks_0days_ago);
    }
  }

然后我运行:

this.setState({ rowData })

但是,当我运行它时,React 给了我以下错误:

错误:ag-Grid:当网格位于绘制行的中间时,无法让网格绘制行。当网格处于渲染阶段时,您的代码可能调用了网格 API 方法。为了克服这个问题,将 API 调用设置为超时,例如,调用 setTimeout(function(){api.refreshView(),0}),而不是 api.refreshView()。要查看导致刷新的代码部分,请检查此堆栈跟踪。

知道如何解决这个问题吗?我所做的一切似乎都不起作用。

谢谢, 加布里埃尔

【问题讨论】:

  • 能否提供 stackblitz 或 plinkr 示例,那样帮助您会简单得多。

标签: reactjs ag-grid ag-grid-angular ag-grid-react


【解决方案1】:

我也有这个问题。真正的问题是valueGetter 抛出了一个错误,但由于某种原因,该错误被吞下,而 ag-grid 则显示此错误。在您的情况下,您可能需要在访问其属性之前检查 params.data 是否已定义。

【讨论】:

  • 我使用自定义 cellClassRules 函数遇到了这个问题,该函数偶尔会得到错误数据。当我在函数周围放置一个 try/catch 时,我可以看到错误,但否则它完全被 ag-grid 吞噬
【解决方案2】:

在 this.setState 周围使用 SetTimeout() 并将超时设置为 100 毫秒。有效

【讨论】:

  • 这是错误的方法,即使它有效你也不应该使用它,因为你可能缺乏你的生命周期,然后它可能会带来更复杂的问题。
猜你喜欢
  • 1970-01-01
  • 2018-12-30
  • 2015-10-22
  • 2021-10-14
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 2020-06-14
  • 2021-10-05
相关资源
最近更新 更多