Я написал следующий редуктор для хранения элементов состояния в своем приложении 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;
}
}
Мне удалось получить работу "Вкладыши", "Обновления" и "Удаления", хотя это было непросто. Я считаю, что Redux является чем-то вроде парадигмы, от меня от того, как я кодировался годами.
У меня есть компонент Instrument/Page на моем приложении - который показывает всю доступную информацию для одного конкретного инструмента, обозначенного InstrumentId, например, "EUR/USD" (хранится в свойстве полезной нагрузки.Инструмент).
Моя проблема в том, что я не уверен, как эффективно искать конкретный инструмент и вытащить его из магазина. Не только это, но я также хочу, чтобы инструмент, который я получал, обновлялся, если Инструмент в магазине обновлен, поскольку они часто проходят через веб-сервер с сервера. Поэтому мне действительно нужно искать в магазине конкретный инструмент и возвращать его как Observable, который будет продолжать обновлять компонент View на основе новых данных, которые попадают в хранилище.
Как я могу это достичь?