react截图组件react-cropper的使用方法

在使用React开发中我们经常会遇到上传图片的情况,如果要使的上传的图片符合一定的规格,那么便要在客户端对上传的图片进行一定的裁剪,这个时候我么便可以使用到

react-cropper这个图片裁剪组件,可以帮助我们轻松的实现图片裁剪功能。使用步骤如下:

  1. 安装:

    npm install --save-dev react-cropper
  2. 使用方法如下:

    import React from ‘react‘
    import Cropper from ‘react-cropper‘
    import ‘cropperjs/dist/cropper.css‘
    import {Button} from ‘antd‘
    
    export default class Crop extends React.Component {
        constructor() {
            super();
            this.cropImage = this.cropImage.bind(this);
        }
    
        cropImage() {
            if (this.cropper.getCroppedCanvas() === ‘null‘) {
                return false
            }
            this.props.getCropData(this.cropper.getCroppedCanvas().toDataURL())
        }
    
        render() {
            return (
                <div>
                    <div style={{width: ‘100%‘}}>
                        <Cropper
                            src={this.props.src}
                            ref={cropper => {
                                this.cropper = cropper;
                            }}
                            style={{height: 400, width: ‘100%‘}}
                            aspectRatio={246/346}
                            guides={false}
                        />
                    </div>
                    <div>
                        <Button type="primary" size="large" onClick={this.cropImage} style={{marginTop: ‘10px‘}}>
                            确认裁剪
                        </Button>
                    </div>
                </div>
            );
        }
    }
import Cropper from ‘react-cropper‘
import ‘cropperjs/dist/cropper.css‘

这两句分别引入Cropper组件和它的样式,Cropper组件还有一些常用的属性:

  1. src:src是要裁剪的图片的src,一般是上层组件读取到的图片的Base64编码
  2. aspectRatio:这是控制裁剪后的图片的比例

裁剪框底部还有一个按钮来确认是否裁剪,从上面我们可以看到其绑定的事件:

cropImage() {
        if (this.cropper.getCroppedCanvas() === ‘null‘) {
            return false
        }
        this.props.getCropData(this.cropper.getCroppedCanvas().toDataURL())
    }

this.cropper使我们使用的react的ref属性保存的Cropper组件的DOM节点的引用,不清楚的可以去看React官方文档,这个组件提供了一个getCroppedCanvas()方法,这个方法返回的是裁剪得到的图片,我们可以使用

toDataURL()方法将其转化为Base64编码上传到上一级的组件。

时间: 2024-10-06 18:24:16

react截图组件react-cropper的使用方法的相关文章

react 兄弟组件如何调用对方的方法示例

最近有一个场景是Child2组件点击让Child1组件里面的state的值发生改变,Child1是一个公用组件,把里面的state值改为props传递,修改内容太多,容易出错,就想找其他的方法来解决兄弟组件调用方法问题,下面看代码: Child1 是第一个子组件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Child1 extends React.Component {  constructor(props)

React 克隆组件 -- React.cloneElement(可以用来修改子组件属性值,复制子组件,添加子组件)

项目要求实现按钮级权限,简单来说就是需要通过后台数据绑定来控制前端页面哪些操作按钮需要渲染,哪些操作按钮不需要渲染, 大体的方案是: 在原有的按钮标签外再套一层按钮权限控制标签,然后每个具体的按钮对照后台给定的唯一值传入到这个"按钮权限控制"组件,然后在组件中判断该按钮该不该渲染,之中用到的一个技术点就是React.cloneElement,可以修改子元素的属性值,下面一起了解一下React.cloneElement React.cloneElement 参数:TYPE(ReactEl

react组件 -- React.createClass()方法--同时创建多个组件类

<!DOCTYPE html><html> <head> <script src="../build/react.js"></script> <script src="../build/react-dom.js"></script> <script src="../build/browser.min.js"></script> </h

React学习—组件

一.定义 组件就像JavaScript的函数.组件可以接收任意输入(称为"props"), 并返回 React 元素,用以描述屏幕显示内容. 二.组件的分类 1.函数式组件(无状态组件) 它是为了创建纯展示组件,这种组件只负责根据传入的props来展示,不涉及到要state状态的操作.在大部分React代码中,大多数组件被写成无状态的组件,通过简单组合可以构建成其他的组件等:这种通过多个简单然后合并成一个大应用的设计模式被提倡. function Welcome(props) { re

浅谈react受控组件与非受控组件

最近在使用蚂蚁金服出品的一条基于react的ant-design UI组件时遇到一个问题,编辑页面时input输入框会展示保存前的数据,但是是用defaultValue就是不起作用,输入框始终为空值而不是具体的传入的值.具体编辑页面中文本框相关的代码如下:         ... //render方法上面的内容省略  <FormItem       label="问题描述:"       hasFeedback      {...props.formItemLayout}  &g

Android React Native组件的生命周期及回调函数

熟悉android的童鞋应该都清楚,android是有生命周期的,其很多组件也是有生命周期.今天小编和大家分享的React Native组件的生命周期,还不了解的童鞋,赶紧来围观吧 在android开发中,React Native组件的生命周期,大致分为三个阶段,分别是: 1.组件第一次绘制阶段,这个阶段主要是组件的加载和初始化: 2.组件在运行和交互阶段,这个阶段组件可以处理用户交互,或者接收事件更新界面: 3.组件卸载消亡的阶段,这个阶段主要是组件的清理工作. 在Android React

React Native组件生命周期

概述 所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解空间的生命周期,是开发中必须掌握的一个知识点.就像 Android 开发中组件 一样,React Native的组件也有生命周期(Lifecycle). React Native组件的生命周期大致上可以划分为实例化阶段.存在阶段和销毁阶段.我们只有在理解组件生命周期的基础上,才能开发出高性能的app. React Native中组件的生命周期大致可以用以下图表示: 如图: 第一阶段:是组件第一次绘制阶段,如图中的上面虚线框内,

React Native组件之Switch和Picker和Slide

React Native组件Switch类似于iOS中的UISwitch:组件Slide类似于iOS中UIslider,组件Picker类似于iOS的UIPickerView.他们的使用方法和相关属性如下: /** * Sample React Native App * https://github.com/facebook/react-native * 周少停 2016-09-28 * Switch 开关组件 Picker 选择器 和slide 进度条 */ import React, { C

React Native组件之ScrollView

React Native组件ScrollView类似于iOS中的UIScrollView.其使用方法和属性如下: /** * Sample React Native App * https://github.com/facebook/react-native * 周少停 ScrollView 的常用属性 * 2016-09-19 */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text,