如何在ReactJs中删除待办事项?

贝伦

这是我的代码,其中我试图从列表中删除一个项目,但是不幸的是,它并没有根据它只是以FIFO顺序删除的索引而删除。

export default class Todo extends Component{
    constructor(){
        super();
        this.state={
            text:"",
            todoList:[]
        }
    }
handleText=(e)=>{
    this.setState({text:e.target.value});
};

addTodo=()=>{
let {text,todoList}=this.state;
let list=[...todoList];
list.push(text);
this.setState({todoList:list,text:""})
};

这是一个删除功能,正在使用项目的索引,但无法正常工作。

 delTodo=(index)=>{
        alert(index);
        let list2=[...this.state.todoList];
        list2.splice(index,1);
        this.setState({todoList:list2})
    };
    
    updateTodo=()=>{
    
    };
    
    render() {
        let {text,todoList}=this.state;
        return(
                <div className="App-header">
                    <div className="childApp">
                    <ul className="list-group">
                    {todoList.map((val,index) => {
                        return (
                            <div className="mytodo">
                                <li className="list-group-item">
              <span classname="spname"> {val} </span>
                  <button key={index} id={index} class="btn btn-default btn-s pull-right remove-item" onClick={this.delTodo}>
              <span className="glyphicon glyphicon-remove"></span>
            </button>
             </li>
                      </div>
                        );
                    }
                    )}
                </ul>
                <h1>You have {todoList.length} Todos</h1>
                <input className="todoinput" name="text" value={text} onChange={this.handleText}/>
                <br/>
                <button type="button" onClick={this.addTodo} className="btn btn-success">Add Todo</button>
                <br/>
                </div>
                </div>
              );}}
德鲁·里斯(Drew Reese)

问题

delTodo接受一个指标,但你通过onClick事件对象,而不是,这是不那么从数组开始拼接开头的有效指标。

定义一个匿名的onClick回调并将索引传递给该delTodo回调

delTodo = index => {
  alert(index);
  const list2 = [...this.state.todoList];
  list2.splice(index, 1);
  this.setState({ todoList: list2 });
};

...

<button
  key={index}
  id={index}
  class="btn btn-default btn-s pull-right remove-item"
  onClick={() => this.delTodo(index)}
>
  ...

或重新定义delTodo咖喱指数值并直接附加为onClick回调

delTodo = index => () => {
  alert(index);
  const list2 = [...this.state.todoList];
  list2.splice(index, 1);
  this.setState({ todoList: list2 });
};

...

<button
  key={index}
  id={index}
  class="btn btn-default btn-s pull-right remove-item"
  onClick={this.delTodo(index)}
>
  ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在React中删除待办事项onClick?

删除待办事项列表中的待办事项后如何重置ID号?

如何在 GitLab 评论中添加待办事项以增加待办事项数量?

如何在没有钩子和 redux 的待办事项列表中编辑待办事项

如何删除 Evolution 中的“待办事项”侧边栏?

如何删除待办事项列表中的div?

如何显示待办事项列表中的删除按钮

如何从 Laravel 的列表中删除待办事项列表项?

如何从我的待办事项列表中删除项目

如何在待办事项列表中的每个LI上显示一个删除按钮?

如何在React中过滤待办事项列表?

如何在javascript中创建待办事项列表

删除待办事项清单

从ReactJS中的待办事项列表中删除记录给出错误

选中复选框后,如何在待办事项应用程序中删除相应复选框的文本?

ReactJS 待办事项列表应用程序删除功能

我如何从待删除的待办事项应用程序中删除列表?

如何更新待办事项?

在待办事项示例中

在反应中删除待办事项列表中的项目

从待办事项中批量删除“ Build Failure”项

无法从待办事项列表中删除div

无法从待办事项列表中删除li

从数组中删除元素(待办事项列表应用)

在删除待办事项中的项目时遇到问题

使用Javascript从待办事项清单中删除项目

如何使用 Angular 5 删除待办事项列表中的多个任务

如何在 Theymeleaf 上显示与 TodoList 关联的待办事项?

如何在IntelliJ的sonarlint插件中禁用待办事项警告?