Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';我不能在React中调用这个函数吗?_Javascript_Reactjs - Fatal编程技术网

Javascript 为什么可以';我不能在React中调用这个函数吗?

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

我得到一个错误:'TypeError:this.createCanvas不是一个函数'

我不明白为什么。我已经在构造函数中绑定了它

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);
}