TypeError:无法读取未定义的属性“ bind”
遇到此错误,请帮助我。
我试图在发生onchange事件时选中并取消选中该复选框
答案 0 :(得分:0)
在渲染中,您应确保声明为函数updated code
答案 1 :(得分:0)
答案 2 :(得分:0)
尝试在渲染器中添加一个常量引用this
,如下所示:
import React from "react";
import todosData from "./TodoData";
import ToDoItems from "./ToDoItems";
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
todos: todosData
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(id) {
this.setState(prevState => {
const updateTodo = prevState.todos.map(todo => {
if (todo.id === id) {
todo.completed = !todo.completed;
}
return todo;
});
return {
todos: updateTodo
};
});
}
render() {
const that = this;
const todoData = this.state.todos.map(function(item) {
return (
<ToDoItems key={item.id} item={item} handleChange={that.handleChange} />
);
});
return <div>{todoData}</div>;
}
}
export default App;
答案 3 :(得分:0)
props.handlehange
this
中的上下文不同,您需要将map
分配给变量
功能item.id
函数中的handleChange()
来跟踪待办事项。