@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>
    )
  }
  • Вопрос задан
  • 630 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT
Front-end разработчик
А зачем тут фигурные скобки?
this.setState({
      text: [this.state.text.splice(index, 1)]
    })

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

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

Похожие вопросы