Push перезаписывает значения (объекты) в массиве, а не добавляет новые

Рейтинг: 0Ответов: 0Опубликовано: 24.03.2023

У меня есть 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>

введите сюда описание изображения

Ответы

Ответов пока нет.