首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[React Cropper]:无法读取未定义的属性“”getCroppedCanvas“”

[React Cropper]:无法读取未定义的属性“”getCroppedCanvas“”
EN

Stack Overflow用户
提问于 2018-10-26 07:12:58
回答 1查看 2K关注 0票数 0

我使用的是"React Cropper“(https://www.npmjs.com/package/react-cropper)库。

我有以下代码(和许多示例一样):

代码语言:javascript
复制
import React from 'react';
import Cropper from 'react-cropper';

export default class PublishPhoto extends React.Component {
constructor(props) {
    super(props);
    this.state = 
    {
        src: '',
        cropResult: null,
    };
    this.onChangeImage = this.onChangeImage.bind(this);
    this.cropImage = this.cropImage.bind(this);
}

onChangeImage(e)
{
    e.preventDefault();
    let files;
    if (e.dataTransfer) {
      files = e.dataTransfer.files;
    } else if (e.target) {
      files = e.target.files;
    }
    const reader = new FileReader();
    reader.onload = () => {
      this.setState({ src: reader.result });
    };
    reader.readAsDataURL(files[0]);
}

cropImage() 
{
    if (typeof this.cropper.getCroppedCanvas() === 'undefined') {
      return;
    }
    this.setState({
      cropResult: this.cropper.getCroppedCanvas().toDataURL(),
    });
}

render(){
  return(
        <div>
            <div>Seccion de publicar foto</div>

            <input type="file" id="uploadImage" name="uploadImage" onChange={this.onChangeImage} />

            <Cropper
                style={{ height: 400, width: '100%' }}
                //aspectRatio={16 / 9}
                preview=".img-preview"
                guides={false}
                src={this.state.src}
                 />

                <button onClick={this.cropImage} style={{ float: 'right' }}>
                    Cortar imagen
                </button>


        </div>

    );  
}
}

但是当点击"Cortar imagen“时,javascript控制台会显示错误: Uncaught : Cannot read property 'getCroppedCanvas‘of undefined。

我尝试使用"this.refs.cropper.getCroppedCanvas()“代替"this.cropper.getCroppedCanvas()”,但"this.refs“是一个空对象。

谢谢:/

EN

回答 1

Stack Overflow用户

发布于 2018-10-27 00:00:55

自我反应。

组件反应中缺少引用;如:

代码语言:javascript
复制
<Cropper
style={{ height: 400, width: '100%' }}
preview=".img-preview"
guides={false}
src={this.state.src}
ref={cropper => { this.cropper = cropper; }}
/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52999327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档