我正在尝试构建一个 ToDoList 应用程序,我有两个组件。我有一个处理状态的主要组件和另一个按钮组件,它在我呈现的每个任务旁边呈现一个删除按钮。我遇到的问题是我似乎无法将删除按钮连接到数组的索引,并通过单击旁边的按钮来删除数组中的特定项目。我尝试使用映射键 id 将索引连接到删除函数。只需要关于我的删除函数应该是什么样子的帮助,以及它如何获取它旁边的项目的索引并删除它。class App extends React.Component { constructor(props) { super(props); this.state = { userInput: '', toDoList : [] } this.handleSubmit = this.handleSubmit.bind(this); this.handleChange = this.handleChange.bind(this); this.delete = this.delete.bind(this); } handleSubmit() { const itemsArray = this.state.userInput.split(','); this.setState({ toDoList: this.state.toDoList.concat(itemsArray), userInput: '' }); } handleChange(e) { this.setState({ userInput: e.target.value }); } delete(id) { this.setState({ toDoList: this.state.toDoList.filter( (item) => id !== item.id ) }) } render() { return ( <div> <textarea onChange={this.handleChange} value={this.state.userInput} placeholder="Separate Items With Commas" /><br /> <button onClick={this.handleSubmit}>Create List</button> <h1>My Daily To Do List:</h1> <Button toDoList={this.state.toDoList} handleDelete={this.delete} /> </div> ); }}; class Button extends React.Component { constructor(props) { super(props); } render() { return ( <ul> { this.props.toDoList.map( (item) => <li key={item.id}>{item.text} <button onClick={this.props.delete(item.id)}>Done!</button></li> ) } </ul> ); }};
3 回答
湖上湖
TA贡献2003条经验 获得超2个赞
在处理删除项目方面,您可以使用
handleDelete(index) {
// Use the splice array function: splice(index, deleteCount)
this.todoList.splice(index, 1);
}
就这么简单
添加回答
举报
0/150
提交
取消