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});
}
}
私はObservable
かnumber
の間にいくつかの型キャスト足りませんか?任意のヒントをいただければ幸いです。
P.S.私の問題の修正を見つけたので、コンストラクタ内の24行目をthis.counter = this.store.select(AppState => AppState.counter);
に変更し、すべて正常に動作しています。なぜそれがまだ働いているのか分からず、まだ全部を理解しようとしています。
あなたの編集を回答として投稿してください。質問が答えを示すものとして表示されます。 – JGFMK