web-dev-qa-db-fra.com

Obtenir l'erreur ../node_modules/rxjs/Rx "'n'a pas de membre exporté' of '

J'apprends de nouveaux angular à partir du tutoriel ( https: //angular.io/tutorial/toh-pt4#inject-message-service ). Je suis coincé dans ceci pendant que je lance l'application après avoir ajouté les services

../ node_modules/rxjs/Rx "'n'a pas de membre exporté' de '.

    hero.service.ts
---------------------


import { Injectable } from '@angular/core';

// import { Observable, of } from 'rxjs';
import { Observable, of } from 'rxjs/Observable';

import { Hero } from './hero';
import { HEROES } from './mock-heroes';
import { MessageService } from './message.service';

@Injectable()

export class HeroService {

  constructor(private messageService: MessageService) { }

  getHeroes(): Observable<Hero[]> {
    // TODO: send the message _after_ fetching the heroes
    this.messageService.add('HeroService: fetched heroes');
    return of(HEROES);
  }
}

Ma version Angular et les informations connexes sont

Angular CLI: 1.7.4
Node: 6.14.1
OS: linux x64
Angular: 5.2.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
TypeScript: 2.5.3
webpack: 3.11.0

    @angular/cli: 1.7.4
    @angular-devkit/build-optimizer: 0.3.2
    @angular-devkit/core: 0.3.2
    @angular-devkit/schematics: 0.3.2
    @ngtools/json-schema: 1.2.0
    @ngtools/webpack: 1.10.2
    @schematics/angular: 0.3.2
    @schematics/package-update: 0.3.2
    TypeScript: 2.5.
21
arun

D'après votre code, on dirait que vous suivez Angular le guide officiel basé sur Angular 6 et Rxjs 6. Il y a un changement radical dans Rxjs pour lequel vous devez importer operators et Observable d'une manière différente maintenant.

Dans Rxjs 6, l'importation est comme ci-dessous -

import { Observable, of } from 'rxjs'; // only need to import from rxjs

Mais comme vous utilisez Angular 5.2.x, vous utilisez probablement encore la version 5x de Rxjs. En raison de quoi votre déclaration d'importation devrait être comme ci-dessous

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
// or 
import { of } from 'rxjs/observable/of';

Consultez le lien ci-dessous pour consulter le journal des modifications complet et obtenir des instructions pour installer un package de compatibilité rxjs-compat Pour la mise à niveau de angular 5 à 6.

Voir ce lien pour référence: https://www.academind.com/learn/javascript/rxjs-6-what-changed/

61
Niladri