Javascript 有人能告诉我为什么我不能从待办事项列表中删除一项吗?

Javascript 有人能告诉我为什么我不能从待办事项列表中删除一项吗?,javascript,reactjs,Javascript,Reactjs,我对反应待办事项列表有问题 提交时,列表项显示良好 然后,我应该能够删除这个项目,但什么也没有发生点击。一旦我尝试添加其他项目,页面就会刷新,所有项目都会被删除 控制台日志刚刚显示 [对象] 应用程序 import React,{Component}来自'React'; 导入“/App.css”; 从“/TodoItem”导入TodoItem; 类应用程序扩展组件{ 建造师(道具){ 超级(道具); 此.state={ 项目:[] }; this.addItems=this.addItems.

我对反应待办事项列表有问题

提交时,列表项显示良好

然后,我应该能够删除这个项目,但什么也没有发生点击。一旦我尝试添加其他项目,页面就会刷新,所有项目都会被删除

控制台日志刚刚显示

[对象]


应用程序

import React,{Component}来自'React';
导入“/App.css”;
从“/TodoItem”导入TodoItem;
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
项目:[]
};
this.addItems=this.addItems.bind(this);
this.deleteItem=this.deleteItem.bind(this);
}
增补(e){
如果(此._inputElement!=''){
让newItem={
text:this.\u inputElement.value,
关键字:Date.now()
};
this.setState(prevState=>{
返回{
项目:prevState.items.concat(新项目)
};
});
}
这._inputElement.value='';
e、 预防默认值();
}
删除项(键){
console.log('键是'+键);
log('itesmas'+this.state.items);
var filteredItems=this.state.items.filter(函数(项){
返回item.key!==key;
});
this.setState={
项目:filteredItems
};
}
render(){
返回(
要做的事情
(this.\u inputElement=a)}
占位符=“输入任务”
/>
添加
);
}
}
导出默认应用程序;

今天

import React, { Component } from 'react';

//search bar
class TodoItem extends Component {
  constructor(props) {
    super(props);
    this.createTasks = this.createTasks.bind(this);
  }
  createTasks(item) {
    return (
      <li onClick={() => this.delete(item.key)} key={item.key}>
        {item.text}
      </li>
    );
  }
  delete(key) {
    console.log('key is ' + key);
    this.props.delete(key);
  }
  render() {
    let todoEntries = this.props.entries;
    let listItems = todoEntries.map(this.createTasks);
    return <ul className="theList">{listItems}</ul>;
  }
}

export default TodoItem;
import React,{Component}来自'React';
//搜索栏
类TodoItem扩展了组件{
建造师(道具){
超级(道具);
this.createTasks=this.createTasks.bind(this);
}
createTasks(项目){
返回(
  • this.delete(item.key)}key={item.key}> {item.text}
  • ); } 删除(键){ console.log('键是'+键); 此.props.delete(键); } render(){ 让todoEntries=this.props.entries; 让listItems=todoEntries.map(this.createTasks); return
      {listItems}
    ; } } 将默认值导出到doitem;
    您正在分配给
    设置状态
    ,而不是将其作为一种方法使用

    改变

    this.setState = {
      items: filteredItems
    };
    



    这也是它将重新加载应用程序的原因,因为您已经覆盖了
    setState
    方法,您应该会得到一个错误,即
    setState
    不是函数,它会使应用程序崩溃。

    Um。。。我想你可能重复了几次
    this.setState = {
      items: filteredItems
    };
    
    this.setState({
      items: filteredItems
    });