当前位置: 首页 > 面试题库 >

从React js中的列表中删除项目

杜俊逸
2023-03-14
问题内容

我正在创建一个待办事项应用程序,当我们单击它们时,我无法编写用于删除列表元素的代码。我希望用户单击时删除特定项目

class Todo extends React.Component {

    constructor(props) {
      super(props);
      this.state={todos:[]};
    }

    save() {
      var todos = [...this.state.todos];
      todos.push(this.newText.value);
      this.setState({todos});
    }

    remove{

    }


    render(){
        return(
            <div className="list">
              <h1> TO-DO List</h1>
              <input type="text" ref={(ip) => {this.newText = ip}}/>
              <button onClick={this.save.bind(this)} className="btn btn-primary glyphicon glyphicon-floppy-saved">Save
              </button>
              <ul>
                {this.state.todos.map(function(todo) {
                      return <li>{todo}</li>

                 })}

              </ul>
            </div>
        )
    }
};

问题答案:

您需要传递待办事项的索引,然后使用javascript中的slice函数将其删除

remove(e, index){
      var todos = [...this.state.todos];
      todos.slice(index, 1);
      this.setState({todos})
}



class Todo extends React.Component {



    constructor(props) {

      super(props);

      this.state={todos:[]};

    }



    save() {

      var todos = [...this.state.todos];

      todos.push(this.newText.value);

      this.setState({todos});

    }



    deleteTodo(index){

        console.log(index)

         var todos = [...this.state.todos];

         todos.splice(index, 1)

         this.setState({todos})

    }





    render(){

        return(

            <div className="list">

              <h1> TO-DO List</h1>

              <input type="text" ref={(ip) => {this.newText = ip}}/>

              <button onClick={this.save.bind(this)} className="btn btn-primary glyphicon glyphicon-floppy-saved">Save

              </button>

              <ul>

                {this.state.todos.map(function(todo, index) {

                      return <li key={index} onClick={this.deleteTodo.bind(this, index)}>{todo}</li>



                 }.bind(this))}



              </ul>

            </div>

        )

    }

};



ReactDOM.render(<Todo/>, document.getElementById('app'))


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id="app"></div>


 类似资料:
  • 问题内容: 我有创建元素的代码。我需要单击一次删除一个元素。对于每个元素,我都有。我了解我需要一些功能来通过删除项目。如何使用此功能删除ReactJS中的元素?我的代码: 问题答案: 您正在父级组件中管理数据并在子级组件中呈现UI,因此要从子级组件中删除项目,您需要将一个函数与数据一起传递,从子级中调用该函数并在父级组件内部传递列表项的任何唯一标识符使用该唯一标识符删除项目。 步骤1: 将父组件的

  • 问题内容: 在遍历列表时,我想根据条件删除列表中的项。请参见下面的代码。 这给了我一个例外。 如何才能做到这一点? 问题答案: 您需要使用和调用上,而不是使用循环。

  • 问题内容: 我是React的新手,制作了一个可以保存搜索的应用程序。这将提取JSON,但当前正在从静态数组中提取。我无法从搜索列表中删除搜索。 这是jsbin:http://jsbin.com/nobiqi/edit?js,输出 这是我的删除按钮元素: 和我的功能 我尝试了以下教程,但不确定从这里开始。如何删除搜索项目? 问题答案: 我猜,您是否正在寻找类似的东西? 在此示例中,请注意我如何绑定方

  • 问题内容: 我在Python中有一个列表列表: 我想从中删除重复的元素。如果这是正常列表,而不是我可以使用的列表set。但不幸的是,该列表不可散列,因此无法建立一组列表。只有元组。因此,我可以将所有列表转换为元组,然后使用set并返回列表。但这不是很快。 如何以最有效的方式做到这一点? 上面的结果应为: 我不在乎保留订单。 注意:这个问题很相似,但不是我所需要的。搜索了SO,但没有找到确切的重复项

  • 问题内容: 如果想基于每个嵌套列表的第一个元素评估重复项,谁能提出一个好的解决方案从嵌套列表中删除重复项? 主列表如下所示: 如果已经在第一位置出现了另一个具有相同元素的列表,那么我想删除该列表并得到以下结果: 您可以建议一种算法来实现此目标吗? 问题答案: 您是否关心保留订单/删除了哪些重复项?如果不是,则: 会做的。如果您想保留订单并想保留第一个订单,则:

  • 我下面有一个类,想删除包含同名的重复人,如何使用Java8 Lambda,预计列表包含下面的p1、p3。