現在、状態管理にngrxストア(v。4.0.3)を使用しています。それは素晴らしいプロジェクトのようです。ngrx(v。4.x)ストアの状態を初期化できません
私の店の状態を初期化しようとしている間に、私は道のりで少しぶつかりました。 documentationはかなりシンプルに見えますが、私はどこに間違っているのか分かりません。
export const UPDATE = 'UPDATE';
export class UpdateSearchTextAction implements Action {
readonly type: string = UPDATE;
constructor(public readonly text: string) {}
}
export function searchTextReducer(state: string, action: UpdateSearchTextAction) {
switch(action.type) {
case UPDATE:
return action.text;
}
};
app.module.ts
で検索-text.reducer.tsでapp.state.tsexport interface AppState {
searchText: string;
}
で
:
ここでは、関連するコードスニペットです
export const reducers: ActionReducerMap<AppState, UpdateSearchTextAction> = {
searchText: searchTextReducer
};
export const initialState: InitialState<AppState> = {
searchText: 'sds'
};
....
imports: [
....
StoreModule.forRoot(reducers, initialState)
]
いくつかの成分私は入力を開始すると、まだ私は、
value = [undefined]
後で見る
value = [sds]
:トン
constructor(private store: Store<AppState>) {
this.searchBoxText = store.select('searchText');
this.searchBoxText.subscribe(text => console.log('value = [' + text + "]"));
}
ので、ときに、アプリケーションのロード、私は、コンソールにログインして以下を参照してくださいことを期待しますUpdateSearchTextActionをトリガーする入力では、コンソールは実際に正しい値を記録します。だから私は店を正しくセットアップしたようだ。
本当にシンプルなものがあります。誰も助言を提供できますか?
あなたの提案は、私がすでにやっていることですが、ユーザーの入力に応じてのみです。私が理解しようとしているのは、ActionをディスパッチせずにAppStateの初期状態を設定する方法です。 StoreModule.forRootのシグネチャには減速器とStoreConfigが必要です(状態を初期化するために使用できると仮定しています)、私は迷っています。私が望まないのは、ストア内のすべての状態が未定義で初期化されているということです。 –