[英]Converting JS code to React.js, can't see what I'm doing wrong
一个简单的问题是我已经坚持了一段时间。 我有一些普通的JS代码,可以上传文件并显示用户在浏览器中上传的内容。
在我的代码下面,我正在尝试将我的原始JS转换为react.js代码。 在香草,我可以巢readAndPreview()
内previewImages()
但在react.js我得到一个错误Unresolved method or function readAndPreview()
在我的IDE(非控制台),为何如此?
我在做什么错,我该如何解决? 我愿意接受任何批评:)。
import React, {Component} from 'react';
class Wall extends Component {
constructor(props) {
super(props);
this.previewImages = this.previewImages.bind(this);
this.readAndPreview = this.readAndPreview.bind(this);
}
previewImages() {
const preview = React.createElement('div');
if (this.files) {
[].forEach().call(this.files, this.readAndPreview());
}
readAndPreview() {
if (!/\.(jpe?g|png|gif)$/i.test(file.name)) {
return alert(file.name + " is not an image");
}
let reader = new FileReader();
reader.addEventListener("load", () => {
let image = new Image();
image.height = 100;
image.title = file.name;
image.src = this.result;
let date = Date.now();
let d = new Date(parseInt(date, 10));
let ds = d.toString('MM/dd/yy HH:mm:ss');
console.log(ds);
let initialCountOfLikes = 0;
const zeroLikes = React.createElement('h1');
let zeroLikesTextNode = zeroLikes.createTextNode(initialCountOfLikes + " likes");
zeroLikes.appendChild(zeroLikesTextNode);
preview.appendChild(image); // makes image appear
preview.appendChild(zeroLikes); // makes like count appear
image.ondblclick = function (event) {
if (initialCountOfLikes === 0) {
console.log("Inside if block");
initialCountOfLikes++;
console.log("initialCountOfLikes++ => " + initialCountOfLikes);
} else if (initialCountOfLikes === 1) {
console.log("inside second else if block");
initialCountOfLikes--;
console.log("initialCountOfLikes-- => " + initialCountOfLikes);
}
zeroLikesTextNode.nodeValue = initialCountOfLikes + " likes";
};
});
reader.readAsDataURL(file);
document.querySelector('#file-input').addEventListener("change", this.previewImages);
}
}
render() {
return (
<div id="file-input-wrapper">
<input type="file"/>
<label htmlFor="file-input" id={"LblBrowse"}></label>
{this.readAndPreview()}
</div>
);
}
}
export default Wall;
如果您想在另一个内部嵌套一个本地函数,欢迎这样做,但是您需要在它function readAndPreview() {
加上function
,如function readAndPreview() {
。 请注意,这仅是previewImages
的包含函数内部的局部变量。它不是Wall
上的方法。 无法从外部previewImages
甚至是在您使用readAndPreview
而不是this.readAndPreview
引用的PreviewImages内部访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.