React:使用手写签名插件:react-canvas-draw 和 react-signature-canvas

摘要:
1.安装npminstallreat canvas draw--save2,从“reat canvasdraw”导入importCanvasDraw;3.使用组件signCanvas=React。createRef();设置签名组件的属性˂CanvasDrawref={this.signCanvas}brushColor=“#000”brushRadius={3}lazyRadius=
1、安装
npm install react-canvas-draw --save

2、导入
import CanvasDraw from "react-canvas-draw";

3、使用组件
signCanvas= React.createRef();

设置签名组件的属性
<CanvasDraw
ref={this.signCanvas}
brushColor="#000"
brushRadius={3}
lazyRadius={10}
canvasWidth={"100%"}
canvasHeight={250}
/>
4、得到签名并转化为图片
let signImg = this.signCanvas.current.canvas.drawing.toDataURL('image/png');
5、清空画布
this.signCanvas.current.clear();
6、将签名信息图片展示
{
title: '签名',
dataIndex : 'signImg',
fixed: 'left',
align: 'center',
150,
maxWidth:150,
_resizeable: true,
ellipsis: true,
render : (value,record,index) =>{
return <>
<img src={value} style={{height:60}}/>
</>;
}
}

使用此插件,转为png图片后无背景色透明,需要处理。
参考来源 https://www.jianshu.com/p/d36bf61d8034


react-signature-canvas

这个插件签名生成的图片虽然也是透明的,但处理起来比react-canvas-draw这个插件容易多,

示例:

 //先安装

  npm i -S react-signature-canvas

  //导入

  import SignatureCanvas from 'react-signature-canvas';




resetSignBtn=() =>{
    this.signCanvas.current.clear();
}

//给画布添加背景色,只需要在画布打开是拿到画布,给画布添加颜色即可

async signBtn(type) {
    await this.setState({signModal: true});
   //得到画布
    let canvas = this.signCanvas.current._canvas;
    if (canvas.getContext) {
        let ctx = canvas.getContext('2d');
        ctx.fillStyle = "#fff";//添加颜色
        ctx.fillRect(0, 0, canvas.width, canvas.height);
    }
}



     <Modal
                title={'签名'}
                visible={signModal}
                onCancel={this.hideSignModal}
                footer={[
                    <Button key={'sign_rep' + Math.random()} onClick={this.resetSignBtn}>重签</Button>,
                    <Button key={'sign_sub' + Math.random()} type='primary' onClick={this.confirmSignBtn}>确定</Button>,

                ]}
                destroyOnClose={true}
                centered={true}
                width={1000}
       >
         {/*这个组将的class样式的宽高,要与属性width,height一样,不然可能出现画线轨迹与光标偏移量太大*/}
        <SignatureCanvas ref={this.signCanvas} penColor='#000' 
          canvasProps={{ 900,height:400,className: 'sigCanvas'}} />
    </Modal>

  

免责声明:文章转载自《React:使用手写签名插件:react-canvas-draw 和 react-signature-canvas》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c# datagridview 相关操作。torch_geometric安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

React函数组件模拟生命周期(useEffect)

React Hooks提供React.useEffect来解决函数组件没有生命周期的问题 React.useEffect(fn,?)第一个参数是特定实时机执行的回调函数,第二个参数是指依赖项   1.模拟componentDidMount第一次渲染 useEffect(() => { console.log(''); }, []) // 第二...

Echarts学习之路3(在react中使用)

安装: npm install echarts --save demo import React, { Component } from 'react'; // 引入 ECharts 主模块 import echarts from 'echarts/lib/echarts'; // 引入柱状图 import 'echarts/lib/chart/bar'...

react 执行 yarn build ,无法直接打开dist文件下的index

如果你使用create-react-app创建项目,执行命令 yarn build 后,直接以静态方式打开build文件夹内的index.html,会看到页面显示出现问题,打开console后会看到js、css、svg等文件的路径出现问题。 解释: 在打包之前,在 package.json 中 private 下(位置任意)添加"homepage": "....

react基础---react全家桶03

目录: 1. redux   1.1 原始,原始步骤   1.2 react-reducer,两种写法(导出普通写法 和 装饰器的写法)   1.3 存储多个reducer 2. redux中间键,redux-logger | redux-thunk   异步请求,调用dispatch 3. router   基本:BrowserRouter, Link,...

RN 上传文件到以及上传文件到七牛云(初步)

本文将介绍: 如何使用原生 Javascript 上传文件 如何使用七牛云 SDK 上传文件到七牛云 在 App 中文件上传是一个非常重要的需求,但是翻遍 React Naitve 的官方文档没有发现有详细介绍文件上传的文章,在 github上 搜索一下倒是发现了不少 repo 在做这样的事情 遗憾的是这项项目都是基于 native code 实现的...

react 的虚拟dom

前端优化的主要方面就是减少页面的DOM操作,减少重排和重绘,React在这方面做了优化,采用了所谓的虚拟DOM,其实我们平时也会遇到虚拟DOM,只是你没有注意罢了,请听我娓娓道来。  所谓的虚拟DOM就是JavaScript对象,就是在没有真实渲染DOM之前做的操作,给你举几个例子来看看:  (1)createElement('Button')  这就创建...