【发布时间】:2017-04-09 09:39:33
【问题描述】:
上传文件时如何阻止文件上传窗口打开?
export default class Upload extends Component {
constructor(props) {
super(props);
this.state = {
filename: null,
isLoading: false
}
}
trigger_upload_input = () => {
document.getElementById("browse-file").click();
}
handleOnChange = (e) => {
if(e.target.files[0]) {
this.setState({filename: e.target.files[0].name, isLoading: true});
var that = this;
setTimeout(function(){
that.setState({isLoading: false})
},3000)
}
}
handleInputClicked = (e) => {
if(this.state.isLoading){
e.preventDefault();
}
}
render() {
const { isLoading } = this.state;
return(
<div className="upload">
<div>
<input onClick={this.handleInputClicked} onChange={this.handleOnChange} type="file" id="browse-file"/>
{this.state.filename && <span>{this.state.filename}</span>}
</div>
</div>
)
}
}
加载指示器工作,但是当我尝试再次单击输入时,e.preventDefault() 不会停止文件窗口打开,尝试return false 并没有解决问题?
【问题讨论】:
标签: javascript reactjs ecmascript-6