@HalvinBRO

Как удалить элемент из массива на React?

Написал код по удалению элемента массива, но он работает неправильно. После нажатия на кнопку удаления, удаляется элемент на котором была нажата кнопка и все остальные элементы в массиве которые идут после элемента, на котором была нажата кнопка. Сразу уточню, что у меня два компонента: функциональный, где мапится сам массив и находится функция удаления; классовый, где написан код для каждого элемента массива.
Элемент удаляю через "слайсы".
Кто шарит, хелп!

Вот часть кода из функционального компонента:
...
const [notes, setNotes] = React.useState([]);
...
function removeNote(index) {
    setNotes([...notes.slice(0, index), ...notes.slice(index + 1)]);
  }
...
return (
...
<div className="table__list">
        {notes.map((note, i) => (
          <Note 
            key={i} 
            id={i} 
            text={note}
            handleDeleteNote={() => removeNote(i)}
          />
        ))}
      </div>
...
);
...


Вот часть кода из классового компонента:
...
class Note extends React.Component {
  constructor(props) {
    super(props);

    this.id = props.id;
    this.text = props.text;
    this.notes = props.notes;
    this.removeNote = props.handleDeleteNote;
...
 render() {
    return (
...
<button className="removeBtn" onClick={this.removeNote}></button>
...
);}
...
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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