出色的React网格状态更改时不会重新填充过滤器下拉列表

时间:2019-08-16 22:42:03

标签: react-data-grid

我们有一个通过websockets(ActionCable)实现的react-data-grid刷新。用户可以添加或更改行(通过覆盖iFrame),而不必重新加载整个网格。效果很好!除了...我们有一个自定义的过滤器方法,用于填充过滤器下拉菜单,当通过websocket刷新更新网格时,这些下拉列表不会重新填充。

我尝试修改状态列数组以触发下拉列表更新,并且尝试在客户过滤器中使用生命周期方法。我还尝试跟踪单击[筛选器行]按钮时运行的结果代码,该代码确实强制刷新下拉列表。

正如我所说,我尝试过此操作以尝试触发渲染。 (更改列状态和canFilter状态。不走运)

const body = {
    "status": 200,
    "message": "All Mentors",
    "data": [
        {
            "first_name": "Brick",
            "last_name": "Ken",
            "email": "brick@gmail.com",
            "address": "kigali",
            "bio": "so successful",
            "occupation": "army",
            "expertise": "3 years",
            "is_admin": false,
            "is_mentor": true,
            "mentorId": 2
        }
    ]
};

const { id, ...rest } = body.data[0];
body.data[0] = {
  mentorId: id,
  ...rest
};
console.log(body.data);

这是自定义过滤器。

const touchColumns = this.buildColumns(this.state.columns);
      this.setState({canFilter: !this.state.canFilter});
      this.setState({columns: touchColumns, rows:rowCopy});

...

buildColumns(columns) {
  let hashedColumns = [];
  columns.map((col, i) => (hashedColumns.push({
    ...col,
    hash: (new Date).getTime()
  })));
  return hashedColumns;
}

React.Fragment用于此处以及用于主网格渲染。这可能是个问题吗?

我希望当主网格中的状态发生变化时,将重新填充过滤器下拉列表。目前,自定义过滤器代码甚至都没有被调用。

什么触发了过滤器的重新渲染?

0 个答案:

没有答案