ОШИБКА TypeError: Observable_1.Observable.from не является функцией - PullRequest
0 голосов
/ 13 сентября 2018

У меня проблема при использовании @select () и асинхронного канала. Я загружаю курс https://rutracker.org/forum/viewtopic.php?t=5433232, и на 6 уроке я обнаружил эту проблему, прежде чем все это заработало. enter image description here ............................................................................................................................................................. app.component.ts

import {Component} from '@angular/core';
import {NgRedux, select} from 'ng2-redux';
import {IAppState} from './store';
import {INCREMENT} from './actions';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title: 'app';
  @select() counter;

  constructor(private ngRedux: NgRedux<IAppState>) {
  }

  increment() {
    this.ngRedux.dispatch({type: INCREMENT});
  }

}

app.component.html

<h1>{{title}}</h1>

<p>Counter: {{counter | async}}</p>

<button (click)="increment()">Increment</button>

app.module.ts

import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';

import {AppComponent} from './app.component';
import {CommonModule} from '@angular/common';
import {NgReduxModule, NgRedux} from 'ng2-redux';
import {IAppState, INITIAL_STATE, rootReducer} from './store';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    CommonModule,
    BrowserModule,
    NgReduxModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
  constructor(ngRedux: NgRedux<IAppState>) {
    ngRedux.configureStore(rootReducer, INITIAL_STATE);
  }
}

actions.ts

export const INCREMENT = 'INCREMENT';

store.ts

import {INCREMENT} from './actions';

export interface IAppState {
  counter: number;
}

export const INITIAL_STATE: IAppState = {
  counter: 0
};

export function rootReducer(state: IAppState, action): IAppState {
  switch (action.type) {
    case INCREMENT:
      return {counter: state.counter + 1};
  }
  return state;
}

1 Ответ

0 голосов
/ 11 января 2019

Предлагается два обходных пути:

A) Переопределить параметры компилятора TypeScript.Добавьте приведенный ниже путь к compilerOptions в src / tsconfig.app.json:

{
    "compilerOptions": {
        "paths": {
            "rxjs/internal/Observable": [
                "../node_modules/rxjs/_esm5/internal/Observable"
            ]
        }
    }
}

B) Закрепите версию RxJS на 6.2.x Вы можете заблокировать свое приложение на неизмененной версии rxjs 6.2.x, выполнив командуследующая команда:

npm install --save rxjs@6.2 rxjs-compat@6.2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...