Elena0394
@Elena0394

Как удалить элемент из массива, чтоб последующий элемент не получил данные первого?

Есть карточки. У каждой карточки есть свой стейт const [btn, setBtn] = useState(false); когда удаляю первую, то данные стейта переходят на вторую. Я полагаю, это из-за того, что когда в массиве карточек, удаляется первая, то у других меняется индекс. Как я раньше не сталкивалась с этим, не понятно. Может где ошибка?

Такой код:
const Card = ({ props, onDelete }) => {
  const [btn, setBtn] = useState(false);
  const handleButtonClick = () => {
    if (btn) {
      onDelete(props.keyId);
    } else {
      setBtn(true);
    }
  };
  return (
    <div key={props.keyId}>
      <button onClick={handleButtonClick}>{btn ? 'Удалить' : 'Сохранить'}</button>
    </div>
  )
}
export const Cards = () => {
  const [cards, setCards] = useState([]);
  const handleDeleteCard = (id) => {
    setCards(cards.filter(card => card.keyId !== id));
  }
  return (
    <>{cards.map(card => <Card props={card} onDelete={(id) => handleDeleteCard(id)} />)}</>
  )
}
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы