【发布时间】:2019-08-20 03:45:48
【问题描述】:
我已经建立了一个简单的ToDo App。从表单输入中渲染任务工作正常,但单击删除按钮时我无法删除任务。
export class TodoList extends Component {
constructor(props) {
super(props)
this.state = {
task:'',
items:[]
}
}
onChangeHandler=(e)=>{
this.setState({
[e.target.name]: e.target.value
})
}
addItem=(e)=>{
e.preventDefault()
if (this.state.task!==""){
this.setState({
items:[...this.state.items,this.state.task],
task:''
})
}
}
removeItem=(index)=>{
const remainingItems = this.state.items.filter(j => {
return j !== index
})
this.setState({
items: remainingItems
})
};
render() {
return (
<div>
<form>
<input type='text' name="task"onChange={this.onChangeHandler} value={this.state.task} placeholder='Enter Task'/>
<button type='submit' onClick={this.addItem}>Add Task</button>
</form>
<Lists items={this.state.items}
delete={this.removeItem}/>
</div>
)
}
}
export class Lists extends Component {
removeItems=(index)=>{
this.props.delete(index)
}
render() {
return (
<div>
{this.props.items.map((item,index)=>
<li className="Lists" key={index}>{item}
<button type='button' onClick={this.removeItems(index)}>Remove</button>
</li>)}
</div>
)
}
}
【问题讨论】:
-
您能否提供更多信息究竟是什么不工作?我认为没有人想调试整个代码。 (你调试过任何部分吗?)看看这个例子。也许它会帮助你。 (github.com/tastejs/todomvc/tree/gh-pages/examples/react)
-
考虑提供一个链接,指向我们可以使用您的代码的地方。以codesandbox.io 为例。
标签: javascript reactjs