Push перезаписывает значения (объекты) в массиве, а не добавляет новые
У меня есть 2 useEffect
и 2 массива, когда я нажимаю на кнопку туда должно пушится значение, и автоматически сохранять в локал сторедж, когда я кликаю, добавляется объект в массив, но при повторном клике уже на другого пользователя появляется новый объект, который перезаписывает предыдущий объект в массиве и в localStorage
. Подскажите, что делать и как это исправить
const [users, setUsers] = useState([]);
const [likedId, setLikedId] = useState("");
const liked = []
const disliked = []
useEffect(() => {
const newArr = users.filter((item) => item.id !== likedId);
const getLikedUser = users.filter((item) => item.id === likedId);
if (getLikedUser.length !== 0) {
liked.push(...getLikedUser);
localStorage.setItem("liked", JSON.stringify(liked));
console.log(liked);
}
setUsers(newArr);
}, [likedId]);
html:
<div
className="main__menu-item menu__cross"
onClick={() => setLikedId(users[users.length - 1].id)}
>
<img src={cross} alt="dislike" />
</div>
Источник: Stack Overflow на русском