Обновите один и тот же список в магазине от разных действий - Реагируйте - PullRequest
0 голосов
/ 31 марта 2020

Итак, у меня следующая проблема: у меня разные конечные точки API, которые возвращают список всех элементов и список избранных элементов. Теперь я помещаю их в магазин через действие / редуктор, но я хотел бы знать, как обновить список избранных элементов, как только я нажму на кнопку, которая должна добавить его в список.

Это мой Действие:

export function addItemToFavoritesAction(slug, type) {
  return (dispatch, getState) => {
    addItemToFavorites(getState, slug, type).then(response => {
      dispatch({
        type: ADD_FAV_ITEM_SUCCESS,
        payload: response.favoriteItem
      });
    }).catch(err => {
      dispatch({
        type: ADD_FAV_ITEM_FAIL,
        payload: err
      });
    });
  };
}

Здесь ответ возвращает мне элемент, который я хотел бы добавить в существующий список избранных. В моем редукторе у меня есть:

// getting the favorites list
function getFavoritesSuccess(state, action) {

  const favorites = [...action.payload];

  return {
    ...state,
    favorites: [...favorites]
  };
}

function addFavoriteItemSuccess(state, action) {
  const item = action.payload;

  return {
    ...state,
    item
  };
}

Каков наилучший способ обновить список избранного в магазине после успешной публикации? Должен ли я сделать что-то подобное в моей функции addFavoriteItemSuccess или что-то еще ...?

return {
  ...state,
  favorites: [...item]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...