gpt4 book ai didi

javascript - React 应用程序抛出错误无法读取嵌套 Promise 中未定义的属性 'setState'

转载 作者:行者123 更新时间:2023-11-28 14:13:11 24 4
gpt4 key购买 nike

在我的 React 应用程序中的嵌套 Promise 调用中出现此错误

Cannot read property 'setState' of undefined

对我来说奇怪的是,将值设置为 true 和 false 都没有问题,超出了 promise 范围。

console.log('about to set false')
this.setState({
loadingMedications: false
});
console.log('about to set true')
this.setState({
loadingMedications: true
});


SAIIndexedDB(response.data).then(function(result){
this.setState({
loadingMedications: false
});
})
.catch(function(error){
console.log('error', error);
});

所以上面的控制台写得很好,没有错误但随后在 Promise 中,catch 抛出错误 - 此 Promise 大约需要一分钟才能返回,因为它正在将 170k 记录加载到脱机 Indexeddb 数据库中,然后返回,因此,loadingMedicates 是一个加载旋转器,需要设置为false 以隐藏它。

思考为什么?

最佳答案

问题出在这个上。

取而代之的是,

SAIIndexedDB(response.data).then(function(result){
this.setState({
loadingMedications: false
});
})

您需要使用自动绑定(bind)this的箭头函数,

SAIIndexedDB(response.data).then((result) => {
this.setState({
loadingMedications: false
});
})

关于javascript - React 应用程序抛出错误无法读取嵌套 Promise 中未定义的属性 'setState',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58830907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com