背景
我有一个pylint
商店,其中包含pylint 1.1.0
s,如下所示:
redux
Immutable.Map()
已在组件中通过//items
itemID_1: {
prop1: 'a',
prop2: 'b',
prop3: 'c',
},
itemID_2: {
// etc etc
}
分配给store
,此时我会过滤掉props
中的所有项目,并将值转换为{{ 1}}:
mapStateToProps
然后,所有这些项目都会呈现为prop2 != 'a'
个组件的网格:
List
问题:
我想为用户添加能力选择自己的过滤器。
我的属性列表很长,并且会很不稳定,因此我不想为每个属性编写const mapStateToProps = (state) => ({
items: state.items
.filter((item) => {return (item.get('prop2') === 'a')}
.values()
.toList(),
})
函数。
如何添加用户组合过滤器组合的功能?
我考虑过保留<Card>
过滤器配置对象,例如:
render() {
return (
<div>
{this.props.items.map((item, key) => <Card key={key} content={item} />)}
</div>
)
}
filter
函数将遍历此数组并检查array
中的每个项目。
这种类型的得到我想要的东西,因为它有效地将每个道具分类为分类或连续。
但是,我的数据并不像示例所暗示的那样平坦,因此像[
{
propToFilter: 'prop1',
params: {
max: 10,
min: 5
}
},
{
propToFilter: 'prop2',
params: {
is: ['B', 'C']
}
},
]
这样简单的事情并不总是有效。这意味着我必须a)建立一个路径列表来找到每个道具,或者b)以某种方式搜索我的商店的钥匙每个(我怀疑它不是超级高性能)。
这个解决方案是否可行?还是有更有效的方法?