Где в React/Redux/Saga сравнивать полученные данные с хранилищем?

Получаю аяксом данные с сервера - список новостей.
Необходимо отфильтровать из списка только те новости, которых еще нет и добавить их.
Вот код Саги:
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 в редьюсере вообще не уместна т.к. это не место для манипуляции данными. Но как мне сравнить полученные данные со стейтом до редьюсера - ума не приложу.
  • Вопрос задан
  • 363 просмотра
Пригласить эксперта
Ответы на вопрос 1
@KnightForce
В редьюсере.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы