我是新来的反应和制作待办事项应用程序。
我添加了一个事件侦听器 (handleChange) 来翻转 todosData.completed 从 true 到 false,反之亦然,从而允许用户选中和取消选中该复选框。
我该如何纠正这个问题。这是我的代码:
class App extends React.Component {
constructor() {
super();
this.state = {
todos: todosData
}
this.handleChange = this.handleChange.bind(this);
}
handleChange(id) {
this.setState(prevState => {
const updatedTodos = prevState.todos.map(todo => {
if (todo.id === id) {
todo.completed = !todo.completed;
}
return todo;
});
return {
todos : updatedTodos
};
});
}
render() {
const todoItems = this.state.todos.map(item => (
<TodoItem
key={item.id}
item={item}
handleChange={this.handleChange}/>
));
return(
<div>{todoItems}</div>
);
}
}
export default App;
function TodoItem(props) {
return (
<div>
<input
type = 'checkbox' checked = {props.item.completed}
onChange = {() => props.handleChange(props.item.id)} />
<p> {props.item.task} </p>
</div>
);
}
export default TodoItem;
有人能告诉我我错过了什么吗?
慕田峪7331174
相关分类