AgGrid:如何根据变化以不同颜色闪烁单元格

AgGrid: How to blink cell in different color depending on change

我正在像这样使用 ag-grid-react:

import { AgGridReact } from "ag-grid-react";
import "ag-grid-community/dist/styles/ag-grid.css";
import "ag-grid-community/dist/styles/ag-theme-balham.css";

并在渲染中这样声明(为清楚起见删除了一些细节):

return <div className="MarketGrid ag-theme-balham" >
    <AgGridReact domLayout='autoHeight'
        enableCellChangeFlash={true}
        rowSelection={'single'}
        onSelectionChanged={this.onSelectionChanged.bind(this)}
        onGridReady={this.onGridReady.bind(this)} />
    </div>;

"enableCellChangeFlash" 属性 工作正常,我知道如何改变它的颜色,但是如果我想根据新值是高于还是低于来改变颜色怎么办上一个?

我的更新代码看起来有点像这样:

let row = this.gridApi.getRowNode(this.props.productIds.indexOf(id));
    for (var f in data) {
        row.setDataValue(f, data[f]);
    }
}

我想我应该在某处设置单元格样式,但我不确定在哪里。

更新:根据此页面 https://www.ag-grid.com/javascript-grid-data-update/#flashing 我应该这样做:

"If you want to override how the flash presents itself (eg change the background color, or remove the animation) then override the relevant CSS classes."

有人知道怎么做吗?

单击顶部下拉菜单中的“闪烁单元格”选项,然后您可以选择不同的颜色来进行向上变化和向下变化。您还可以设置闪烁的时间。

我现在差不多明白了。我找到的答案是基于 CSS。为 blinking/stop-blinking 设置类名,例如:

return (<div key={Math.random()}
  className={some logic to set classname here, like "blink-red" or "blink-blue"}
  onAnimationEnd={() => this.setState({ fade: false })}
  > {this.state.value} </div>);

并使用 onAnimationEnd 设置一些会影响该逻辑的状态变量。

然后将这样的淡入淡出逻辑添加到CSS:

.blink-red {
  animation: redtotransparent 3s ease 5s;
}

@keyframes redtotransparent {
  from {
    background-color: red;
    color: white;
  }
  to {
    background-color: transparent;
    color: black;
  }
}

它还不完美,但已经差不多了。更改密钥会使 React 认为 DOM 已更改。当我想出更好的东西时,我会在这里添加。