我正在尝试创建一个过滤器,mapPropsStream
但它不起作用。这是我的代码:
const BaseComponent = ({ onSearch, data }) => (
<div>
<input onChange={({ target }) => onSearch(target.value)} />
<br/>
<ul>
{data.map((item) => /* render list */)}
</ul>
</div>
);
const DataList = mapPropsStream((props$) => {
const { handler: onSearch, stream: onSearch$ } = createEventHandler();
const filteredData$ = Observable.merge(
onSearch$.switchMap((query) =>
props$.pluck('data').filter((item) =>
item.title.includes(query) ||
item.body.includes(query) ||
item.event.includes(query)
)
),
props$.pluck('data') // props$.map(({ data }) => data)
).startWith([]);
return props$.combineLatest(
filteredData$,
(props, data) => ({
...props,
data,
onSearch
})
);
})(BaseComponent)
export default DataList;
我不知道这是否是过滤数据的正确方法,如果不是,这是记住我的数据存储在 redux 中的正确方法?如果是,我的代码有什么问题?
谢谢