我最近開始學習React,並且在將回調附加到子元素後,我在父元素中丟失了「this」的引用。我正在構建一個簡單的任務,並在檢查時進行。我將它發送回父項,以便父項可以將其刪除並將狀態重新分配給沒有元素的新數組。但是,我沒有訪問this.state.todosTask。我弄不明白。 以下是我的代碼。REACT React如何在回調後訪問正確的「this」
Parent Element TodoList
constructor(props){
super(props);
this.state ={
todosTask: props.todos
}
}
handleCheckedTask(task){
console.log("Now Im in the todost"+task)
this.state.todosTask //= Undefined
}
render(){
return(
<div>
<h4>Todo List</h4>
<div className="form-check">
<label className="form-check-label">
{this.state.todosTask.map((todoElement)=>{
return <Todo todo={todoElement} key={todoElement.id} onCheckedTask={this.handleCheckedTask}/>
})}
</label>
</div>
</div>
)
}
輔元件
completed(event){
let self = this
let task = self.props.todo.task
let id = self.props.todo.id
console.log(self.refs.complete)
this.props.onCheckedTask({id:id,task:task})
}
render(){
return(
<div>
<input
className="form-check-input"
type="checkbox"
ref="complete"
onChange={this.completed.bind(this)}/>
{this.props.todo.task}
</div>
)
}
}
完美。將它綁定到構造函數給了我整個類的控制權。我很困惑,爲什麼我必須手動綁定它。你可以請解釋當我手動綁定它在構造函數中發生了什麼。 –
我爲我的回覆添加了一個解釋。 –