Получаю аяксом данные с сервера - список новостей.
Необходимо отфильтровать из списка только те новости, которых еще нет и добавить их.
Вот код Саги:
function* getNewsUpdate({payload}) {
try {
const response = yield call(getLatestNews,payload.lang);
yield put({type: "LOADED_NEWS", payload: {lang: payload.lang, loadedNews: response}});
} catch (err) {
console.log(err);
}
}
Здесь у меня есть список загруженных новостей, но нет доступа к хранилищу.
И ближайшее место, где я могу сравнить полученный список с хранилищем - редьюсер:
case 'LOADED_NEWS':
let {lang, loadedNews} = action.payload;
let newElements = filterNewItems(state[lang], loadedNews);
return {...state,
[lang]: [...state[lang], ...newElements]
};
Но есть ощущение, что функция filterNewItems в редьюсере вообще не уместна т.к. это не место для манипуляции данными. Но как мне сравнить полученные данные со стейтом до редьюсера - ума не приложу.