Javascript 无法读取属性';设置状态';未定义进度条的定义
我想在我的代码中设置一个进度条:Javascript 无法读取属性';设置状态';未定义进度条的定义,javascript,reactjs,Javascript,Reactjs,我想在我的代码中设置一个进度条: class imageUpload extends Component { constructor(props) { super(props); this.state = { image: null, url: '', progress: 0 } 我的状态有进步 upload = (image) => { ImageTools.resize(image, { widt
class imageUpload extends Component {
constructor(props) {
super(props);
this.state = {
image: null,
url: '',
progress: 0
}
我的状态有进步
upload = (image) => {
ImageTools.resize(image, {
width: 320, // maximum width
height: 240 // maximum height
}, function(blob, didItResize) {
document.getElementById('preview').src = window.URL.createObjectURL(blob);
const uploadTask = storage.ref(`images/${image.name}`).put(blob);
uploadTask.on('state_changed',
(snapshot) => {
// progrss function ....
const progress = Math.round((snapshot.bytesTransferred / snapshot.totalBytes) * 100);
this.setState({progress}); // Unhandled Rejection (TypeError): Cannot read property 'setState' of undefined
},
当我选择一个图像并将其上载到服务器时,它将进入服务器,但我遇到以下错误:
未处理的拒绝(TypeError):无法读取未定义的属性“setState”
html
你知道为什么吗
谢谢 我想您需要将匿名函数
函数(blob,didItResize){}
转换为箭头函数(blob,didItResize)=>{}
将函数表达式转换为箭头函数
function(blob, didItResize) {
到
要使
此指向正确的上下文。您需要使用箭头功能:
(blob, didItResize) => { ... }
而不是
function (blob, didItResize) { ... }
谢谢你的回答!它起作用了!谢谢你的回答!:)谢谢你的回答!:)
(blob, didItResize) => { ... }
function (blob, didItResize) { ... }