为了账号安全,请及时绑定邮箱和手机立即绑定

类型错误:未定义不是对象(评估“此状态.图像 ID”)

类型错误:未定义不是对象(评估“此状态.图像 ID”)

繁花不似锦 2022-09-29 16:38:34
当我尝试上传图像时,我收到这个奇怪的错误。上传到服务器工作正常,但在我收到错误后立即进行。当我只上传文本时,它工作正常,但是当我在上传后尝试使用imageID时,它会给出此错误。有谁知道为什么我会收到这个错误,以及如何解决它?我在上传()函数内的xhr.onready状态更改中收到“这一行的错误。
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

在此行上使用箭头函数表达式,其他明智的将被覆盖。箭头函数表达式将顶级绑定到函数。像这样做:xhr.onreadystatechange = function() {thisthisxhr.onreadystatechange = () => {...}



查看完整回答
反对 回复 2022-09-29
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

你不能使用直接改变状态,所以显示一些错误。您应该使用 来更新状态中的某些密钥。在代码中,执行以下操作:this.state.keythis.state.imagesIDthis.setState({someKey:newValue})


// get a new imagesID base on old value

const newImagesID = [...this.state.imagesID,'exampleId'] 

//this.state.imagesID = newImagesID // dont do this

this.setState({imagesID:newImagesID}) //use new value to update key

更多信息


你应该用箭头函数代替普通函数这行:普通函数在代码运行时发生变化,你可以得到你需要的。thisthis


 function() {

    if (xhr.readyState === 4) {

    // doing something with this will not work well

  }

}

箭头函数完成时代码运行时不会更改,您可以使用这个简单的功能。this


()=>{

//do something with this

}


查看完整回答
反对 回复 2022-09-29
  • 2 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号