this.state在React JS中的reader.onload功能上不起作用

时间:2019-02-14 14:53:09

标签: reactjs

我想设置状态,但是this.state无法正常工作,任何人都可以检查一下此代码,并帮助我解决其中的问题,这是我的代码

save_import_permit() {
      //alert('sdsdsd');
      var file_name =  jQuery('input[type=file]').val().split('\\').pop(); //jQuery('#permit_csv_file').prop('files')[0];
      let files = jQuery('input[type=file]')[0].files[0];
      console.log(files);      
      let reader = new FileReader();  
      let data = [];
      reader.readAsDataURL(files);
      reader.onload = function(e) {    
        console.log(e.target.result);   
        data.result = e.target.result;
        data.action = 'Permity::saveImportCsvFile';  
        const url  = 'admin-ajax.php';
        const formdata = "file="+data.result+"&action="+data.action;       
        this.state({loading:'loading_show'})    
        return post(url,formdata,function (r) {
          this.state({loading:'loading_hide'});        
          alert(r.data.msg)          
        }.bind(this));   
      }.bind(this);     

  }  

1 个答案:

答案 0 :(得分:1)

您不应使用this.state为状态赋值,而应始终使用this.setState(),这是react框架的内置功能。选中此link可以了解更多信息。

所以您需要更改

this.state({loading:'loading_show'})

this.setState({loading:'loading_show'})