使用mapPropsStream过滤不起作用

时间:2018-06-07 15:01:21

标签: rxjs filtering recompose

我正在尝试使用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中?如果是的话,我的代码有什么问题?

由于

0 个答案:

没有答案