2017-07-31 11 views
1

Angular、ngrxおよびTypeScriptの新機能は、ngrx GitHubページの例に基づいて基本を学びます。しかし、私は単純なアプリの後にこのエラーに遭遇しました:argument of type '"counter"' is not assignable to parameter of type '(state: AppState) => number''' counter ''型の引数が '(state:AppState)=> number'の型のパラメータに割り当てられません。

私のコードは以下の通りです、エラーがconstructor内のライン24に発生します。

import { Component } from '@angular/core'; 
import { Store } from '@ngrx/store'; 
import { Observable } from 'rxjs/Observable'; 
import { INCREMENT, DECREMENT, RESET } from './counter'; 

interface AppState { 
    counter: number; 
} 

@Component({ 
    selector: 'app-counter', 
    template: ` 
     <button (click)="increment()">Increment</button> 
     <div>Current Count: {{counter | async}}</div> 
     <button (click)="decrement()">Decrement</button> 
     <button (click)="reset()">Reset</button> 
    ` 
}) 

export class CounterComponent { 
    counter: Observable<number>; 

    constructor(private store: Store<AppState>) { 
     this.counter = store.select<number>('counter'); 
    } 

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

    decrement() { 
     this.store.dispatch({type: DECREMENT}); 
    } 

    reset(){ 
     this.store.dispatch({type: RESET}); 
    } 
} 

私はObservablenumberの間にいくつかの型キャスト足りませんか?任意のヒントをいただければ幸いです。

P.S.私の問題の修正を見つけたので、コンストラクタ内の24行目をthis.counter = this.store.select(AppState => AppState.counter);に変更し、すべて正常に動作しています。なぜそれがまだ働いているのか分からず、まだ全部を理解しようとしています。

+1

あなたの編集を回答として投稿してください。質問が答えを示すものとして表示されます。 – JGFMK

答えて

1

私の問題の修正を見つけたので、コンター内の24行目をthis.counter = this.store.select(AppState => AppState.counter)に変更しました。すべてが正常に動作しています。なぜそれがまだ働いているのか分からず、まだ全部を理解しようとしています。

関連する問題