这是我在React中的第一个项目.我得到了这个元素<DragDropContext onDragEnd={(result) => this.HandleOnDragEnd(result)}>
,在完成拖动后,它调用了以下函数,在这里我得到了错误:
HandleOnDragEnd = (result) =>
{
const requestOptions = {
method: 'POST',
headers: { "Content-type":"application/json",
"Accept":"application/json",
"Accept-Encoding":"gzip, deflate, br" }
};
fetch(url, requestOptions)
.then(function(response){
if(!response.ok)
{
return response.statusText;
}
else{
const items = [...this.state.sets];
const itemReordered = items.splice(result.source.index, 1);
items.splice(result.destination.index, 0, itemReordered);
this.setState({sets: items});
}
})
}
问题发生在else语句中.出于某种原因,它认为这一点.状态未定义.到目前为止,我判断过的地方都是说要么用构造函数中的函数绑定this
,要么使用我拥有的箭头函数,所以我不明白是什么导致了这个问题.
UPDATE 1
我能够在函数开始时为console.log(this.state.sets);
,所以我唯一的假设是它没有在中定义.然后出于某种原因发挥作用.有办法吗?