получить один элемент из магазина ngrx
Я написал следующий редуктор для хранения элементов состояния в моем приложении Angular 2. Позиции представляют собой ценовые предложения для финансовых инструментов (например, акции / валюты).
Моя реализация редуктора выглядит следующим образом:
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;
}
}
Мне удалось заставить работать Inserts, Updates and Deletes - хотя это было нелегко. Я считаю, что Redux - это что-то вроде изменения парадигмы от того, как я программировал годами.
У меня есть приложение / страница инструмента в моем приложении, которое показывает всю доступную информацию для одного конкретного инструмента, указанную в InstrumentId, например «EUR / USD» (хранится в свойстве payload.Instrument).
Моя проблема в том, что я не уверен, как эффективно найти конкретный инструмент и забрать его из магазина. Не только это, но я также хочу, чтобы инструмент, который я выбираю, обновлялся, если инструмент в магазине обновлялся, как это часто происходит посредством проталкивания websocket с сервера. Поэтому мне действительно нужно найти в хранилище определенный инструмент и вернуть его в качестве наблюдаемого, который будет продолжать обновлять компонент просмотра на основе новых данных, которые передаются в хранилище.
Как мне этого добиться?