javascript - 功能未定义,但已定义。反应和 Javascript
问题描述
我有课PhotoUploader
:
import React from 'react';
class PhotoUploader extends React.Component {
constructor(props) {
super(props);
this.state = {}
this.handleFileSelect = this.handleFileSelect.bind(this);
}
handleFileSelect(evt) {
var file = evt.target.files; // FileList object
// Loop through the FileList and render image files as thumbnails.
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (!f.type.match('image.*')) {
alert("Image only please....");
}
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function (theFile) {
return function (e) {
// Render thumbnail.
var span = document.createElement('span');
span.innerHTML = ['<img class="thumb" title="', escape(theFile.name), '" src="', e.target.result, '" />'].join('');
document.getElementById('output').insertBefore(span, null);
};
})(f);
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
componentDidMount() {
document.getElementById('fileMulti1').addEventListener('change', handleFileSelect, false);
}
render() {
return (
<div class="container">
<div class="row">
<label>Мультизагрузка файлов:</label>
<input type="file" id="fileMulti1" name="fileMulti[]" multiple />
</div>
<div class="row">
<span id="outputMulti"></span>
</div>
</div>
);
}
}
export default PhotoUploader;
而且我遇到了麻烦:在ComponentDidMount
我尝试addEventListener
归档名为“fileMulti1”的输入时。开始后我得到“ReferenceError:未定义handleFileSelect”
解决方案
this
我认为您在引用函数时忘记在 addEventListener 中使用:
document.getElementById('fileMulti1').addEventListener('change', this.handleFileSelect, false);
推荐阅读
- ssas - Changing color in a measure in SSAS
- php - 您的包名无效 - Composer 2.0
- javascript - Meteor on MacOS "can't get arch with uname -p?"
- git - 服务器不允许请求未公布的对象
- electron - Electron Child process access bin
- android - 如何撤消使用 Room 持久库进行的删除?
- mysql - CASE statement for double and null data
- keras - 卷积自编码器keras的高损失
- amp-html - AMP 示例中的嵌套 iFrame 通信
- c# - WPF DataGrid 显示长度而不是路径