obtenha um item único do ngrx / store
Escrevi o redutor a seguir para armazenar os itens de estado no meu aplicativo Angular 2. Os itens são ofertas de preço para instrumentos financeiros (por exemplo, ações / moedas).
A implementação do meu redutor é a seguinte:
export const offersStore = (state = new Array<Offer>(), action:Action) => {
switch(action.type){
case "Insert":
return [
...state, action.payload
];
case "Update":
return state.map(offer => {
if(offer.Instrument === action.payload.Instrument)
{
return Object.assign({}, action.payload);
}
else return offer;
});
case "Delete":
return state.filter(offer => offer.Instrument !== action.payload )
default:
return state;
}
}
Consegui fazer com que as inserções, atualizações e exclusões funcionassem - embora não fosse fácil. Acho o Redux uma espécie de mudança de paradigma em relação à minha codificação há anos.
Eu tenho um componente / página de instrumento no meu aplicativo - que mostra todas as informações disponíveis para um instrumento específico, indicado por InstrumentId, por exemplo. "EUR / USD" (armazenado na propriedade payload.Instrument).
Meu problema é que não tenho certeza de como procurar com eficiência um instrumento específico e retirá-lo da loja. Não apenas isso, mas também quero que o instrumento que eu busco seja atualizado se o Instrumento na loja for atualizado, pois é frequentemente via push do Websocket no servidor. Então, eu realmente preciso pesquisar na loja por um instrumento específico e devolvê-lo como um Observável, que continuará a atualizar o View Component com base nos novos dados enviados à loja.
Como posso conseguir isso?