Javascript 为什么可以';我不能在React中调用这个函数吗?
我得到一个错误:'TypeError:this.createCanvas不是一个函数' 我不明白为什么。我已经在构造函数中绑定了它Javascript 为什么可以';我不能在React中调用这个函数吗?,javascript,reactjs,Javascript,Reactjs,我得到一个错误:'TypeError:this.createCanvas不是一个函数' 我不明白为什么。我已经在构造函数中绑定了它 import React, { Component } from 'react'; class ImageEditor extends Component { constructor() { super(); this.createCanvas = this.createCanvas.bind(this); this.getImageDi
import React, { Component } from 'react';
class ImageEditor extends Component {
constructor() {
super();
this.createCanvas = this.createCanvas.bind(this);
this.getImageDimensions = this.getImageDimensions.bind(this);
}
componentDidMount() {
const imageurl = "https://storage.googleapis.com/" + this.props.location.state.imageuri;
this.getImageDimensions(imageurl);
}
getImageDimensions(url) {
var img = new Image();
img.onload = function() {
this.createCanvas(this.width, this.height);
}
img.src = url;
}
createCanvas(width, height) {
let mycanvas = document.createElement("canvas");
mycanvas.width = width;
mycanvas.height = height;
mycanvas.id = "mycanvas";
document.body.appendChild(mycanvas);
}
render() {
return (
<h1>{this.imageurl}</h1>
)
}
import React,{Component}来自'React';
类ImageEditor扩展组件{
构造函数(){
超级();
this.createCanvas=this.createCanvas.bind(this);
this.getImageDimensions=this.getImageDimensions.bind(this);
}
componentDidMount(){
常量imageurl=”https://storage.googleapis.com/“+this.props.location.state.imageuri;
这个.getImageDimensions(imageurl);
}
getImageDimensions(url){
var img=新图像();
img.onload=函数(){
this.createCanvas(this.width,this.height);
}
img.src=url;
}
createCanvas(宽度、高度){
让mycanvas=document.createElement(“canvas”);
mycanvas.width=宽度;
mycanvas.height=高度;
mycanvas.id=“mycanvas”;
document.body.appendChild(mycanvas);
}
render(){
返回(
{this.imageurl}
)
}
}
导出默认图像编辑器 您的
img.onload
也必须提供一个箭头函数,否则这将不是您想要的。你可以阅读更多关于为什么会出现这种情况的信息
img.onload=()=>{….}
createCanvas
函数根本不使用实例。你为什么要把它变成一种方法?
img.onload = () => {
this.createCanvas(img.width, img.height);
}