我想通過多個reducer功能存儲在角2中。我試過了,但我不知道它是否正確或不正確?像:傳遞多個reducer以角色2存儲(ngrx/store)與打字稿?
@NgModule({
imports: [ StoreModule.provideStore({todo: appStore, selectedTodo: todoSelector}, {todo: [], selectedTodo: {}}) ],
declarations: [ ... ],
providers: [ ...],
bootstrap: [ ...]
})
export class AppModule{}
這裏,AppStore的 - 返回todolist的和todoSelector - 返回選定待辦事項細節減速,如:
export const appStore: ActionReducer<Todo[]> = (state: Todo[] = [], action: Action) => {
switch (action.type) {
case GET_LIST: return action.payload;
default: return state;
}
}
export const todoSelector: ActionReducer<Todo> = (state: Todo, action: Action) => {
switch (action.type) {
case GET_DETAILS: return action.payload;
default: return state;
}
}
在根組件,我用店裏像這樣:
export class AppComponent{
private seletedTodo:Todo;
private $todoList: Observable<number>;
constructor(private _todoService: TodoService, private _store: Store<number>){
...
this.$todoList = this._store.select('todo');
this._store.select('selectedTodo').subscribe(todo => this.seletedTodo = todo);
}
onSelection(data: Todo){
this._store.dispatch({type: 'GET_DETAILS', payload: data});
}
}
是對的wa Ÿ做或不做?
感謝,很好的解釋,在這裏我創建了兩個減速器來更新兩個不同的視圖,一個視圖顯示待辦事項清單和其他視圖顯示用戶單擊待辦事項列表中的任何項目時的待辦事項詳細信息。這是正確的方法嗎?是否真的需要創建兩個獨立的reducrers來實現它? – Shree