Angular2 + RxJS-无法读取未定义的下一个属性

vlio20

我创建了下一个组件:

export class MonthView {
  currentMonth: Moment = moment();
  currentMonth$: Observable<Moment>;
  currentMonthObserver: Observer<Moment>;
  decrement: Function;
  increment: Function;

  constructor() {
    this.currentMonth$ = new Observable((observer: Observer<Moment>) => {
      this.currentMonthObserver = observer;
    }).share();

    const decrementCounter$: Observable<Function> = Observable.create((observer) => {
      this.decrement = () => {
        observer.next();
      };
    });

    const incrementCounter$: Observable<Function> = Observable.create((observer) => {
      this.increment = () => {
        observer.next();
      };
    });

    Observable
      .merge(
        decrementCounter$.map(() => - 1),
        incrementCounter$.map(() => + 1)
      )
      .startWith(0)
      .scan((currentCount: number, value: number) => currentCount + value)
      .subscribe((count: number) => {
        this.currentMonthObserver.next(this.currentMonth.clone().add(count, 'M')); //this.currentMonthObserver is undefined
      });
  }
} 

问题:我正在:Cannot read property 'next' of undefined针对这一this.currentMonthObserver.next行(请参阅发布的代码中的注释)。

注意:我已经按照此博客上的教程进行操作,并且对RxJS完全陌生:https ://coryrylan.com/blog/angular-2-observable-data-services

模板:

<month-board [current-month]="currentMonth$"></month-board>
<button (click)="decrement()">Prev</button>
<button (click)="increment()">Next</button>

在此处输入图片说明

贡特·佐赫鲍尔(GünterZöchbauer)

此代码this.currentMonthObserver = observer;

this.currentMonth$ = new Observable((observer: Observer<Moment>) => {
   this.currentMonthObserver = observer;
 }).share();

只会在您订阅时执行this.currentMonth因此this.currentMonthObservernull因为它尚未初始化。

constructor() {
  this.currentMonth$=new Subject().startWith(0).share();
}

increment() {
  this.currentMonth$.next(1);
}

decrement() {
  this.currentMonth$.next(-1);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angular2形式-无法读取未定义的属性替换

来自分类Dev

Angular2 RxJs映射http响应

来自分类Dev

Angular2 beta 11无法读取未定义的属性区域

来自分类Dev

Webpacked Angular2应用程序TypeError:无法读取未定义的属性“ getOptional”

来自分类Dev

如何使用angular2和angular rxjs观察mousemoves

来自分类Dev

http / rxjs中的Angular 2重定向捕获回调导致TypeError:无法读取未定义的属性'subscribe'

来自分类Dev

无法读取未定义的属性“ unsubscribe”(rxJS-订阅)

来自分类Dev

angular2指令“无法读取未定义的属性” subscribe”,带有输出元数据

来自分类Dev

Angular2 v3组件路由器:TypeError:无法读取未定义的属性“ split”

来自分类Dev

Angular2 rxjs /主题导入-无法加载vendor / rxjs / index.js

来自分类Dev

NgZone / Angular2 / Ionic2 TypeError:无法读取未定义的属性“运行”

来自分类Dev

Angular2 * ngFor:“无法读取未定义的属性'0'”

来自分类Dev

在第一个元素后的Angular 8中出现“ ERROR TypeError:无法读取未定义的属性'length'的问题”的问题

来自分类Dev

下一个redux包装器出现错误,无法读取未定义的属性'getState'

来自分类Dev

Angular rxjs异步数组未定义

来自分类Dev

使用ngFormModel(ES6)时angular2无法读取未定义的属性'validator'

来自分类Dev

Webpacked Angular2应用程序TypeError:无法读取未定义的属性“ getOptional”

来自分类Dev

如何使用angular2和angular rxjs观察mousemoves

来自分类Dev

无法读取未定义Angular 2的属性

来自分类Dev

无法读取未定义的属性“ unsubscribe”(rxJS-订阅)

来自分类Dev

Angular2 rxjs /主题导入-无法加载vendor / rxjs / index.js

来自分类Dev

Angular2(RC-4):无法读取未定义的属性“ pathsWithParams”

来自分类Dev

Angular2与rxjs中的CombineAll

来自分类Dev

Angular2 rxjs多个结果

来自分类Dev

BehaviorSubject RxJs angular2

来自分类Dev

Angular无法读取未定义的属性

来自分类Dev

Angular2 和 RxJS:使用 Map 将 Observable Response 替换为另一个 Observable Response

来自分类Dev

Angular - Ionic 2 - 无法读取未定义的属性“订阅”

来自分类Dev

(Angular2 和 Typescript)Angular 的 DatePicker 无法读取未定义的属性“切换”

Related 相关文章

  1. 1

    angular2形式-无法读取未定义的属性替换

  2. 2

    Angular2 RxJs映射http响应

  3. 3

    Angular2 beta 11无法读取未定义的属性区域

  4. 4

    Webpacked Angular2应用程序TypeError:无法读取未定义的属性“ getOptional”

  5. 5

    如何使用angular2和angular rxjs观察mousemoves

  6. 6

    http / rxjs中的Angular 2重定向捕获回调导致TypeError:无法读取未定义的属性'subscribe'

  7. 7

    无法读取未定义的属性“ unsubscribe”(rxJS-订阅)

  8. 8

    angular2指令“无法读取未定义的属性” subscribe”,带有输出元数据

  9. 9

    Angular2 v3组件路由器:TypeError:无法读取未定义的属性“ split”

  10. 10

    Angular2 rxjs /主题导入-无法加载vendor / rxjs / index.js

  11. 11

    NgZone / Angular2 / Ionic2 TypeError:无法读取未定义的属性“运行”

  12. 12

    Angular2 * ngFor:“无法读取未定义的属性'0'”

  13. 13

    在第一个元素后的Angular 8中出现“ ERROR TypeError:无法读取未定义的属性'length'的问题”的问题

  14. 14

    下一个redux包装器出现错误,无法读取未定义的属性'getState'

  15. 15

    Angular rxjs异步数组未定义

  16. 16

    使用ngFormModel(ES6)时angular2无法读取未定义的属性'validator'

  17. 17

    Webpacked Angular2应用程序TypeError:无法读取未定义的属性“ getOptional”

  18. 18

    如何使用angular2和angular rxjs观察mousemoves

  19. 19

    无法读取未定义Angular 2的属性

  20. 20

    无法读取未定义的属性“ unsubscribe”(rxJS-订阅)

  21. 21

    Angular2 rxjs /主题导入-无法加载vendor / rxjs / index.js

  22. 22

    Angular2(RC-4):无法读取未定义的属性“ pathsWithParams”

  23. 23

    Angular2与rxjs中的CombineAll

  24. 24

    Angular2 rxjs多个结果

  25. 25

    BehaviorSubject RxJs angular2

  26. 26

    Angular无法读取未定义的属性

  27. 27

    Angular2 和 RxJS:使用 Map 将 Observable Response 替换为另一个 Observable Response

  28. 28

    Angular - Ionic 2 - 无法读取未定义的属性“订阅”

  29. 29

    (Angular2 和 Typescript)Angular 的 DatePicker 无法读取未定义的属性“切换”

热门标签

归档