gpt4 book ai didi

javascript - React setState 不是函数

转载 作者:行者123 更新时间:2023-11-30 07:49:58 24 4
gpt4 key购买 nike

    fileChangedHandler = event => {
event.preventDefault();
event.persist();
new ImageCompressor(event.target.files[0], {
quality: .6,
success(result) {
this.setState({selectedFile: result})
},
error(e) {
console.log(e.message);
},
});
}

这是上面的函数,我想在成功后更改状态,但我得到 setState is not a function

这就是我触发它的方式:

<input style={{display: 'none'}} type="file" onChange={this.fileChangedHandler} ref={fileInput => this.fileInput = fileInput}/>
<button type='button' onClick={() => this.fileInput.click()} className='col m3 btn' style={{textTransform: 'none'}}>Choose image</button>

最佳答案

success 是具有由调用方 (ImageCompressor) 确定的动态 this 上下文的常规函数​​。

由于fileChangedHandler 方法是一个箭头,this 指的是具有setState 方法的组件类实例。

为了在success中到达词法this,它应该是一个箭头:

...
success: (result) => {
this.setState({selectedFile: result})
},
...

关于javascript - React setState 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54732153/

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