0

我正在尝试创建一个过滤器,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 中的正确方法?如果是,我的代码有什么问题?

谢谢

4

0 回答 0