我正在尝试从保存在 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));
}
}
答案 0 :(得分:0)
您可以使用 Array.filter()
方法
localStorage.setItem("list", JSON.stringify(favArray.filter(fav => fav.id !== id)));