Shirley~~ 2022-10-09 11:43 采纳率: 90%
浏览 43
已结题

我想通过点击【清除已完成任务】的按钮将已经勾选的任务项取消掉,但是我点击了以后他只修改了已完成的任务项数字,但没有彻底删除已经勾选的任务项目

问题遇到的现象和发生背景

我想通过点击【清除已完成任务】的按钮将已经勾选的任务项取消掉,但是我点击了以后他只修改了已完成的任务项数字,但没有彻底删除已经勾选的任务项目

img

用代码块功能插入代码,请勿粘贴截图

App组件中(我已经将这个组件里面的方法传入到了清除组件按钮中)

// 清除所有已完成的任务
  clearCompleted = () =>{
    // 获取所有任务的完成
    const {todos} = this.state
    const newTodos = todos.filter((t)=>{
      return !t.completed
      // return t.completed === false
    })
    this.setState({todos:newTodos})
    console.log(todos)
  }

清除按钮组件中

deleteCompletedTodos = ()=>{
    // const {todos} = this.props
    this.props.checkedAll()
    // console.log(todos)
  }
render() {
    const {todos} = this.props
    const allTodos = todos.length;
    // const completedTodos = todos.reduce((preValue,current)=>{return preValue+(current.completed ? 1:0),0})
    const newTodos = todos.filter((t)=>{return t.completed === true})
    const completedTodos = newTodos.length
    return (
        <div className="todo-footer">
            <label>
                <input type="checkbox" checked={completedTodos===allTodos ? true:false } onChange={this.handlecheckedAll} />
            </label>
            <span>
                <span>已完成{completedTodos}</span> / 全部{allTodos}
            </span>
            <button className="btn btn-danger" onClick={this.deleteCompletedTodos}>清除已完成任务</button>
        </div>
    )
  }

运行结果及报错内容

Warning: A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component.

我的解答思路和尝试过的方法

我使用了数组的filter方法,想过滤掉已经完成的任务项,并且将未完成的传到新的数组中,将新数组赋值给旧数组,这样数组中就没有已完成的任务了

我想要达到的结果

改变已完成项目的同时删除掉已完成项目

  • 写回答

2条回答 默认 最新

  • 原莱_ 2022-10-09 17:49
    关注

    你可以多找几处打印一下,初步判断一下组件传过来的数据是不是正确,或者是传过来的时间是不是正确这些

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月9日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改