我想在列上的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(...):在现有状态期间无法更新 过渡
如此善良地指导我如何做到这一点,因为我是新手做出反应和蚂蚁设计。
答案 0 :(得分:0)
在onFilter中调度一个动作可能不是一个好主意,因为每次过滤器更改都会调用几次
但是,当您调用此操作filterLoading
并且新的onFilter可以像这样时,您可以编辑缩减器以将true
设置为getFilteredData
...
onFilter: (value) => {
if(! this.props.filterLoading) {
this.getFilteredData(value);
}
return true;
}
要考虑的几件事
filterLoading
传递给组件filterLoading
行动被称为GET_FILTERED_DATA_SUCCESS
设为假
希望这有帮助