node_modules / rxjs / Rx не имеет экспортированного члена 'merge' - PullRequest
0 голосов
/ 01 июля 2018

мой компонент:

import {Observable, Subject , merge} from 'rxjs';
import {debounceTime, distinctUntilChanged, filter, map} from 'rxjs/operators';

focus$ = new Subject<string>();
click$ = new Subject<string>();

search = (text$: Observable<string>) => {
        const debouncedText$ = text$.pipe(debounceTime(200), distinctUntilChanged());
        const clicksWithClosedPopup$ = this.click$.pipe(filter(() => !this.instance.isPopupOpen()));
        const inputFocus$ = this.focus$;

        return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
            map(term => (term === '' ? states
                : states.filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))
        );
}

версия:

"rxjs": "^5.5.6",
"@angular/cli": "1.3.2",
"@angular/compiler-cli": "^4.2.4"

я получаю ошибку:

node_modules / rxjs / Rx "'не имеет экспортированного члена' merge '

1 Ответ

0 голосов
/ 01 июля 2018

merge может использоваться как метод static или instance.

для static использования метода
import { merge } from 'rxjs/observable/merge';

 return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
            map(term => (term === '' ? states
                : states.filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))
        );

для instance использования метода
import { merge } from 'rxjs/operators';

return Observable.merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
            map(term => (term === '' ? states
                : states.filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))
        );

Live Demo

...