javascript - 无法在 react 中从 react 签名 Canvas 生成base64字符串

标签 javascript reactjs canvas

我正在开发一个用于获取用户签名的 react 项目。我正在使用 react-signature-canvas 来签署用户。我希望签名数据保存在后端。那么如何将签名 Canvas 更改为base64字符串呢?这是我的代码。

import React, { useRef, useState } from "react";
import SignaturePad from "react-signature-canvas";
import offer from "./assets/offer.PNG";

const Signature = () => {
  let signPad = useRef({});
  let data = "";
  const clear = () => {
    signPad.current.clear();
  };
  const save = () => {
    data = signPad.current.toDataURL();
  };
  const show = () => {
    signPad.current.fromDataURL(data);
  };
  const imageString = ""; //I want to store it here
  return (
    <div className="p-10 flex flex-col space-y-24 font-serif justify-center items-center">
      <div className="  w-56 mt-10   ">
        <p className="flex justify-start items-start -mx-36">Your Signature</p>
        <div className="flex justify-center items-center">
          <SignaturePad
            canvasProps={{ widtd: 500, height: 200, className: "sigCanvas" }}
            className="border-2 border-black "
            ref={signPad}
          />
        </div>
      </div>
      <div className="flex space-x-4 -mt-24">
        {" "}
        <button onClick={clear}>Clear</button>
        <button onClick={save}>Save</button>
        <button onClick={show}>Show</button>
      </div>
    </div>
  );
};

export default Signature;

谁能帮我将签名 Canvas 更改为base64字符串?

最佳答案

看来您的设置已经基本正确了。您的保存函数使用signPad应该可以让您访问底层 Canvas 的引用,但由于某种原因您正在调用 toDataURL名为 current 的子对象上的方法 Canvas 引用。

尝试将保存函数的内容更改为以下内容,并检查控制台是否有 Base64 字符串输出:

console.log(signPad.toDataURL());

关于javascript - 无法在 react 中从 react 签名 Canvas 生成base64字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72146564/

相关文章:

java - 坐标不对应

Android Canvas 坐标系统

单页应用程序的javascript集成测试

javascript - 检查文件格式是否与 Python、Javascript 中的文件扩展名不同?

javascript - CKEDITOR 获取数据 : wait for method to finish before submitting data

javascript - 我应该如何处理 React 的 componentWillUnmount 中的离开动画?

javascript - 如何使用 Javascript 在 Canvas 上绘制 SVG?

javascript - 如何在单击一个复选框时禁用其他复选框?

javascript - react : how to add a props to a component inside a library?

javascript - react 路由器 : How to change path URL when redirect to a component by typing path?