фильтр с mapPropsStream не работает - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь создать фильтр с 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; 

Я не знаю, если это правильный способ фильтрации данных, если нет, то это правильный путь, имея в виду, что мои данные хранятся в избыточном ?, еслида, что не так с моим кодом?

Спасибо

...