2016-04-05 32 views
1

React ile yeni bir dosya yükleme bileşeni oluşturmaya çalışıyorum. Ancak yerel bir React eklentisi bulamadı. Bu yüzden bir React bileşeninden bir JQuery eklentisi (Blue-imp dosya yükleme) aramayı denedim, benim sorun dosya yükleme sadece bir kez çalışır. Blue-imp eklentisi, dosyaları otomatik olarak yükleyecek şekilde yapılandırılmıştır ve dosya yükleme kontrolü gizlidir ve tıklatması tetiklenir. Aşağıdaki benim kodudur:Tepki dosya yükleme Bileşen jquery blueimp dosyası yükleme eklentisi

var FileUpload = React.createClass({ 

    triggerUpload:function(){ 
    this.myFileInput.trigger('click'); 
    },  
    componentDidMount: function() { 
    this.myFileInput = $(ReactDOM.findDOMNode(this.refs.mu)); 
    this.myFileUpload = this.myFileInput.fileupload({ 
          dataType: this.props.dataType, 
          url: this.props.uploadURL, 
         }); 
    }, 
    render: function() { 
    return (
     <div className="myFP" onClick={this.triggerUpload}> 
      <input type="file" ref="mu" name="files[]" multiple="" className="hidden"/> 
     </div> 
    ); 
    } 
}); 

ReactDOM.render(<FileUpload dataType="json" uploadURL="/upload-file" />,$('#fpDiv').get(0)); 

kimse bana tepki yoluyla jquery eklentisi çağırmak için doğru yolu nedir söyleyeyim misiniz. Herhangi bir yardım büyük takdir edilecektir.

cevap

0
<div className="myFP" onClick={this.triggerUpload.bind(this)}> 
      <input type="file" ref="mu" name="files[]" multiple="" onClick={this.testFnc.bind(this)} className="hidden"/> 
     </div> 

Neden aynı kapsamda iki yönteminiz olduğunu merak ediyorum. TriggerUpload ve testFnc yöntemlerinin her ikisi de, giriş tıklandığında tetiklenir. Onu yönetmelisin.

+0

Hata için özür dilerim 'onClick = {this.testFnc.bind (this)}' bir yazım hatası –

İlgili konular