gpt4 book ai didi

javascript - react 多个过滤器下拉菜单

转载 作者:搜寻专家 更新时间:2023-11-01 04:56:39 25 4
gpt4 key购买 nike

我有 React 应用程序,您可以在其中根据几个不同的属性过滤列表。目前我可以一次过滤每个类别,但我想一次过滤多个类别,因此当您选择更多过滤器时,列表会越来越小。然后,当您清除所有值时,它将返回到原始列表。我怎样才能做到这一点?

demo

我的代码示例

getInitialState: function() {
return {
data: this.props.data,
bender: '',
nation: '',
person: '',
show: ''
}
},
filterItems: function(val, type) {
switch (type) {
case 'bender':
this.setState({bender: val});
break;
case 'nation':
this.setState({nation: val});
break;
case 'person':
this.setState({person: val});
break;
case 'show':
this.setState({show: val});
break;
default:
break;
}
var filteredItems;
if (val) {
filteredItems = this.props.data.filter(function(item) {
return item[type] === val;
});
} else {
filteredItems = this.props.data;
}
this.setState({data: filteredItems});
}

最佳答案

您的代码一次仅按一个条件进行过滤。您需要遍历四个条件并累积过滤:

["bender", "nation", "person", "show"].forEach(function(filterBy) {
var filterValue = state[filterBy];
if (filterValue) {
filteredItems = filteredItems.filter(function(item) {
return item[filterBy] === filterValue;
});
}
});

完整代码:

http://codepen.io/foxdonut/pen/GpwRJB?editors=001

希望对您有所帮助!

关于javascript - react 多个过滤器下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33618470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com