簡體   English   中英

React setState不是函數

[英]React setState is not a function

    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是具有動態正則函數this背景下,由一個呼叫者(確定ImageCompressor )。

由於fileChangedHandler方法是一個箭頭, this引用具有setState方法的組件類實例。

為了使詞匯表里面this success ,應該是一個箭頭:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM