Задать вопрос
@doppelgangerz
JavaScript

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

Здравствуйте, имею подобную реализацию, однако она работает некорректно (удаляется не конкретный элемент в списке):
render() {
    return (
      <div className="container">
        <div className="app">
          <div className="top-container">
          <div className="name">Todo List</div>
          <InputArea changeState={this.changeState}/>
          <input className="clear_button" type="button" value="Clear" onClick={this.handleClear}/>
          </div>
          <TodoList closed={this.handleClose} text={this.state.text}/>
        </div>
      </div>
    )
  }

  handleClose = (index) => {
    console.log(index);
    this.setState({
      text: [this.state.text.splice(index, 1)]
    })
  }


дочерний компонент:
render() {
    return (
      <div>
        <ul className="todoList_container">
          {this.props.text.map((text, i) => {
            return <div key={i} className="li" >
              <li>{text}</li>
              <i onClick={()=> {this.props.closed(i)}} className="fas fa-times-circle close-btn"></i>
              </div>
          })}
        </ul>
      </div>
    )
  }
  • Вопрос задан
  • 632 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
Vlad_IT
@Vlad_IT
Front-end разработчик
А зачем тут фигурные скобки?
this.setState({
      text: [this.state.text.splice(index, 1)]
    })

так вы получите массив, в котором будет один элемент - массив (с которого вы удалили элемент).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽