如何在蚂蚁设计中调用“onFilter”中的自定义函数?

时间:2017-12-04 11:00:38

标签: reactjs antd

我想在列上的ant设计给出的“onFilter”属性中调用自定义函数。我可以选择自定义过滤器下拉列表,但我想使用ant设计给出的默认过滤器选项。即

{
  title: 'Address',
  dataIndex: 'address',
  key: 'address',
  filters: [{
    text: 'London',
    value: 'London',
  }, {
    text: 'New York',
    value: 'New York',
  }],
  onFilter: (value, record) => record.address.indexOf(value) === 0,
}

但我唯一需要改变的是自定义函数(它将触发api调用并将新数据设置为redux状态,以便组件重新呈现它),例如

{
  ...
  onFilter: (value, record) => this.getFilteredData(value),
}

但是当我这样做时,我得到了这个错误,这也是有道理的。

  

警告:setState(...):在现有状态期间无法更新   过渡

如此善良地指导我如何做到这一点,因为我是新手做出反应和蚂蚁设计。

1 个答案:

答案 0 :(得分:0)

在onFilter中调度一个动作可能不是一个好主意,因为每次过滤器更改都会调用几次

但是,当您调用此操作filterLoading并且新的onFilter可以像这样时,您可以编辑缩减器以将true设置为getFilteredData

  ...
  onFilter: (value) => {
    if(! this.props.filterLoading) {
      this.getFilteredData(value);
    }
    return true;
  }

要考虑的几件事

  • 您必须将filterLoading传递给组件
  • 不要忘记在filterLoading行动被称为
  • 时将GET_FILTERED_DATA_SUCCESS设为假

希望这有帮助