2017-05-14 8 views
1

私はngrxストアを使用して問題に直面しているので、データを自分のストアに適切にプッシュして選択しています。ngrxストアからデータを正しくプッシュして受信する方法

マイストアオブジェクトが

AppStore = { 
    chat: { 
    messages: [] 
    } 
} 

ようになり、私の減速の場合には

const initialState = { 
    messages: [] 
}; 

export const ChatReduce = (state = initialState, action:Action) => { 
    if (typeof state === 'undefined') { 
    return initialState; 
    } 
    switch(action.type){ 
    case 'ADD_MESSAGE': 
     return { 
     ...state, 
     messages: [...state.messages, action.payload] 
     }; 
    default: 
     return state; 
    } 
}; 

のように見える「ADD_MESSSAGE」私はアクションペイロードから新しいメッセージオブジェクトを押して、新しい状態を返すようにしたいです。私は何を間違えているのですか?現在、私の州のチャットメッセージ配列は、新しいメッセージをプッシュするたびに1つの値を書き換えますが、古いメッセージはセーブされません。

ストアに書き込んだ後、どのように私のメッセージを選択するのですか?データを購読する必要がありますか?私はthis.store.select('chat')を試しましたが、メッセージを受け取る方法は?

答えて

0

私はそれを上書きせずに追加してもらうことができました:

https://jsfiddle.net/seesyong/stL5o0ck/

あなたはあなたができるだけのメッセージを引き出すしたい場合:私はそれに近づい方法

this.store.select(state => state.chat) 
    .subscribe(chat => { 
    console.log(chat.messages); 
}); 
1

相続人を、

ngOnInit() { 
    this.getStudents(); 
    this.students$ = this.store.select(state => state.students) 
    this.students$.forEach(v => console.log(v)) 
    } 

    getStudents(){ 
    // we want to dispatch na action 
    this.store.dispatch(new studentActions.LoadStudentsAction()) 
} 
関連する問題