我开始学习React JS,我的问题是;我想从文件对话框中选择多个文件,然后我想在屏幕上显示它们的名称。
<RaisedButton className="raisedBtn" label="Video Ekle" onClick={this.openFileDialog}>
<input
ref={(input) => { this.textInput = input; }}
style={{"display" : "none"}}
type="file" multiple
onChange={this.handleFileChange}
>
</input>
</RaisedButton>
没关系。
openFileDialog(){
ReactDOM.findDOMNode(this.textInput).click();
}
再次没问题。
问题在于:
handleFileChange(e){
var files = e.target.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
let reader = new FileReader();
var fileName = file.name;
reader.onload = (e) => {
tilesData.push({img: e.target.result, title: fileName})
this.setState({image: e.target.result, title: fileName});
};
reader.readAsDataURL(file);
}
}
所有图片名称都相同(所有图片都有最后选择的文件名称)。我认为reader.onload正在异步运行,所以for循环继续,但reader.onload没有完成运行?我该如何解决?
谢谢您的预付款。