RxJS обновлено, свойство 'merge' не существует для типа 'typeof Observable' - PullRequest
0 голосов
/ 14 октября 2018

Я обновил свой угловой проект материала, добавив в свою таблицу расширяемый ряд деталей.Мне нужно было обновить до rsjx 6 для этого.Теперь я получаю следующую ошибку.Я совершенно новичок в Angular, поэтому, к сожалению, я не знаю, как решить эту проблему.

Property 'merge' does not exist on type 'typeof Observable'.

Может кто-нибудь помочь решить эту ошибку?

приложение.component.ts

  /** Connect function called by the table to retrieve one stream containing the data to render. */
  connect(): Observable<Track[]> {
    // Listen for any changes in the base data, sorting, filtering, or pagination
    const displayDataChanges = [
    this._exampleDatabase.dataChange,
    this._sort.sortChange,
    this._filterChange,
    this._paginator.page
    ];

    this._exampleDatabase.getAllTracks();

    return Observable.merge(...displayDataChanges).map(() => {
      // Filter data
      this.filteredData = this._exampleDatabase.data.slice().filter((track: Track) => {
        const searchStr = (track.id + track.title + track.artist + track.year + track.comment + track.path).toLowerCase();
        return searchStr.indexOf(this.filter.toLowerCase()) !== -1;
      });

      // Sort filtered data
      const sortedData = this.sortData(this.filteredData.slice());

      // Grab the page's slice of the filtered sorted data.
      const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
      this.renderedData = sortedData.splice(startIndex, this._paginator.pageSize);
      return this.renderedData;
    });
  }

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

в старой версии rxjs вы используете Observable.merge(...array).map(() => {});.для новых версий, например rxjs 6 + , необходимо использовать следующий синтаксис:

import { merge } from 'rxjs';
import { map } from 'rxjs/operators';

merge(...array).pipe(
  map(...),
  ...
);
0 голосов
/ 14 октября 2018

Статический merge импортируется следующим образом начиная с версии 6:

import {merge} from 'rxjs'

Затем используйте его как:

merge(...)
...