如何从保存在本地存储上的数组中删除项目?

时间:2021-06-17 14:41:49

标签: reactjs redux local-storage

我正在尝试从保存在 state 和 localStorage 上的收藏夹列表中删除一个项目

action.js

export function addFavoriteAction(personaje) {
    return (dispatch) => {
        dispatch( addFavorite(personaje));
    }
}

const addFavorite = (personaje) => ({
    type: ADD_FAV,
    payload: personaje
});

export function removeFavoriteAction(personaje) {
    return (dispatch) => {
        dispatch( removeFavorite(personaje));

        const favArray  = JSON.parse(localStorage.getItem('favorites'))
        console.log(favArray)
        favArray.splice(favArray.includes(personaje), 1)
        localStorage.setItem("list", JSON.stringify(favArray));
    }
}

const removeFavorite = (personaje) => ({
    type: REMOVE_FAV,
    payload: id
});

我也有这个函数一个组件来处理哪个调度使用,但我不是 100% 确定这一点:

  const handleFav = () => {

    if(favorites.map(favorite => favorite.id === perSelect.id)) {
      
      dispatch( removeFavoriteAction(perSelect));
    } else {
      dispatch( addFavoriteAction(perSelect));
    }
  }

1 个答案:

答案 0 :(得分:0)

您可以使用 Array.filter() 方法

 localStorage.setItem("list", JSON.stringify(favArray.filter(fav => fav.id !== id)));
相关问题