Cropperjs as React components
Install via npm
npm install --save react-cropperYou need cropper.css in your project which is from cropperjs.
Since this project have dependency on cropperjs, it located in /node_modules/react-cropper/node_modules/cropperjs/dist/cropper.css or node_modules/cropperjs/dist/cropper.css for npm version 3.0.0 later
- Unit test
 
import React, {Component} from 'react';
import Cropper from 'react-cropper';
// If you choose not to use import, you need to assign Cropper to default
// var Cropper = require('react-cropper').default
class Demo extends Component {
  _crop(){
    // image in dataUrl
    console.log(this.refs.cropper.getCroppedCanvas().toDataURL());
  }
  render() {
    return (
      <Cropper
        ref='cropper'
        src='http://fengyuanchen.github.io/cropper/img/picture.jpg'
        style={{height: 400, width: '100%'}}
        // Cropper.js options
        aspectRatio={16 / 9}
        guides={false}
        crop={this._crop.bind(this)} />
    );
  }
}- Type: 
string - Default: 
null 
  <Cropper src='http://fengyuanchen.github.io/cropper/img/picture.jpg' />- Type: 
string - Default: 
picture 
- Type: 
string - Default: 
null 
https://github.com/fengyuanchen/cropperjs#aspectratio
https://github.com/fengyuanchen/cropperjs#dragmode
https://github.com/fengyuanchen/cropperjs#setdatadata
https://github.com/fengyuanchen/cropperjs#scalexscalex
https://github.com/fengyuanchen/cropperjs#scalexscaley
https://github.com/fengyuanchen/cropperjs#enable https://github.com/fengyuanchen/cropperjs#disable
https://github.com/fengyuanchen/cropperjs#setcropboxdatadata
https://github.com/fengyuanchen/cropperjs#setcanvasdata
https://github.com/fengyuanchen/cropperjs#zoomto
https://github.com/fengyuanchen/cropperjs#moveto
https://github.com/fengyuanchen/cropperjs#rotateto
Accept all options in the docs as properties. Except previous mentioned options, other options don't take effect after component mount.
<Cropper
  src='http://fengyuanchen.github.io/cropper/img/picture.jpg'
  aspectRatio={16 / 9} 
  guides={false} 
  crop={this._crop} />Assign a ref attribute to use methods
class Demo extends Component {
  _crop(){
    const dataUrl = this.refs.cropper.getCroppedCanvas().toDataURL();
    console.log(dataUrl);
  },
  render() {
    return (
      <Cropper
        ref='cropper'
        crop={this._crop.bind(this)} />
    );
  }
}npm run build
npm run build-example
Fong Kuanghuei(fongkuanghui@gmail.com)
MIT
