如何将可组合滤镜应用于渲染数组?

时间:2016-08-18 00:18:20

标签: javascript reactjs redux immutable.js

背景

我有一个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)以某种方式搜索我的商店的钥匙每个(我怀疑它不是超级高性能)。

这个解决方案是否可行?还是有更有效的方法?

0 个答案:

没有答案