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

萨米拉拉希米

我正在尝试学习 react js,但我不知道如何从我的列表中删除一个项目,你能帮我吗?实际上,我并不专业,但我真的对学习很感兴趣,我的代码可以正确地将一些新项目添加到我的列表中,但是当我点击他们的复选框/删除按钮时,我不知道如何删除它们。

 import React, { useState } from "react";
    const App = () => {
      const [NewTaskText, setNewTaskText] = useState("");
      const [Tasks, setTasks] = useState(["do a task", "samira"]);
    
      const addTask = (e) => {
        e.preventDefault();
        if (!NewTaskText) return;
        setTasks((currentTasks) => {
          return [...currentTasks, NewTaskText];
        });
        setNewTaskText("");
      };
    
      const onchangeInput = (e) => {
        const value = e.target.value;
        setNewTaskText(value);
      };
    
      return (
        <div className="row">
          <form onSubmit={addTask}>
            <div className="row col s6">
              <div className="input-field col s10">
                <textarea
                  id="textarea1"
                  className="materialize-textarea"
                  value={NewTaskText}
                  onChange={onchangeInput}
                ></textarea>
    
                <label htmlFor="textarea1">What needs to be done ?</label>
              </div>
            </div>
          
    
          <div className="row col s6">
            <br></br>
            <a className='waves-effect waves-light btn' href="/#" onClick={addTask}>
                <i className='material-icons left' >
                  add_circle
                </i>
                Add
              </a>
          </div>
          </form>
          <div className="row">
            <div className="row col s9">
              <ul className="collection with-header">
                <li className="collection-header">
                  <h4>Todo List</h4>
    
                  <form>
                    <div className="input-field">
                      <input id="search" type="search" required />
                      <label className="label-icon" htmlFor="search">
                        <i className="material-icons">search</i>Search
                      </label>
                      <i className="material-icons">close</i>
                    </div>
                  </form>
                </li>
                <label>
                 
                  {Tasks.map((item, i) => {
                    return (
                     
                      <li className="collection-item" key={i}>
                       
                        <input type="checkbox" />
                        <span>
                       
                          {item}
                          </span>
                      
                        <span>
                          <a href="#!" className="secondary-content">
                            <i className="material-icons" >delete</i>
                            <i className="material-icons">check_circle</i>
                          </a>
                        </span>
                     
                      </li>
                     
                    );
                  })}
                
                </label>
              </ul>
            </div>
          </div>
        </div>
      );
    };
    export default App;
    
        
思南崖曼

您可以使用索引从数组中删除项目:

<i className="material-icons" onClick={() => handleDelete(i)}>delete</i>

并在 return 语句上方定义您的函数:

const handleDelete = i => {
  const taskList = [...Tasks]
  taskList.splice(i, 1)
  setTasks(taskList)
}

在这里,重要的是要知道,如果状态是 anobject或 an ,则必须制作该状态的副本array因为如果您修改原始数组或对象,react 不会将其注册为更改,也不会重新渲染。这就是为什么我这样做了const taskList = [...Tasks]您还可以使用类似的库lodash,它提供了一些处理对象和数组的巧妙方法

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

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

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

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

我无法删除使用 react 创建的待办事项列表中的项目,请帮助我解决代码中的错误

如何创建与本地存储项目分开的列表项目并显示在待办事项列表中?

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

使用过渡设置动画从待办事项列表中添加/删除项目

查找数组的索引以删除待办事项列表中的项目

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

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

难以在待办事项列表中显示项目

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

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

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

如何使我的 Javascript 待办事项列表中的任务出现在新列表项上?

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

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

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

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

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

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

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

如何在Angular JS中将待办事项详细信息添加到我的待办事项列表

无法使用 react 和 redux 在待办事项列表中添加待办事项。我究竟做错了什么?

javascript中的待办事项列表

如何从 React 功能组件(待办事项列表)中的状态数组中过滤出一个项目