当我试图编译它时,我得到了这个无未定义错误。我不知道为什么,我在我的react组件上为我的默认参数指定了一个值(请注意,我正在练习)。我认为我做的一切都是正确的这是我的代码:
// method
handleTodo = (cardId, appComp=this, remove=false) => {
switch(!remove){
case true:
console.log(appComp.state.todoCards.filter(card => card.id === cardId)[0].todoItems.length )
//define new list
let newTodo = {
id: appComp.state.todoCards.filter(card => card.id === cardId)[0].todoItems.length + 1,
isCompleted: "false",
todo: "",
}
// add cards to appComp list of todoItems
appComp.state.todoCards.filter(card => card.id === cardId)[0].todoItems.push(newTodo);
// update the state of todoApp
appComp.setState({
todoCards: appComp.state.todoCards
})
break;
default:
// remove element from list
let arr = appComp.state.todoCards.filter(card => card.id === cardId)[0].todoItems;
// delete selected tasks
arr.map((task, index) => {
return (task.isCompleted === 'true' || task.isCompleted === true) ? appComp.state.todoCards.filter(card => card.id === cardId)[0].todoItems.splice(index, 1) : 1
})
// update state of app component
appComp.setState({
todoCards: appComp.state.todoCards
})
}
}
我在另一个组件上调用此函数,如下所示:
<button className="btn btn-danger btn-sm" onClick={() => {
// eslint-disable-next-line no-undef
this.props.handleTodo(this.props.cardId, remove=true)}}>Remove</button>
据我所知,这个函数调用应该可以工作,因为可以用另一个值“true”重新分配参数“remove”。我已经在控制台的代码之外对其进行了测试。但当我在我的react应用程序中运行它时,我似乎一直得到这个无未定义错误。
另外,我已经禁用了eslint以查看它的工作情况,但是我得到了一个未捕获的引用错误。 Uncaught ReferenceError: assignment to undeclared variable remove
希望有人能指出我做错了什么。
暂无答案!
目前还没有任何答案,快来回答吧!