javascript - 为什么 Canvas 更新会重新加载页面? react

标签 javascript reactjs canvas

我想在我的表单中实现一个签名系统,我为此使用“react-signature-canvas”。 不幸的是,当我尝试使用它时出现了一些问题。

我的主要问题是重新加载我的页面。通常在 React 中,当你更新某些内容时,只是渲染发生变化而无需重新加载。但在这里它确实......它与 Canvas 系统链接吗?我不想重新加载我的页面...对于 PWA 来说这太丑了。 例如,当我单击“清除”或“trim ”时,页面会重新加载。

这是我的代码:为了更清晰,我删除了其中的一些部分

const Consultation4 = () => {
    const sigPad = {}
    const [trimmedDataUrl,setTrimmedDataUrl] =  useState(null);

    const clear = () => sigPad.clear();
    const trim = () => {
        setTrimmedDataUrl(sigPad.getTrimmedCanvas().toDataURL('image/png'));
    }
 ...
(In the render)
    <FormGroup tag="fieldset" className="form-group">
       <div className="container">
          <div className="row">
             <div className="col-4 margin-left--12px">
                 <legend>Please sign here:</legend>
             </div>
             <div className="col-4 margin-button-clear">
                <button onClick={clear} className="btn btn-outline-secondary btn-sm">Clear</button>
             </div>
             <div className="col-4 margin-button-clear">
                <button onClick={trim} className="btn btn-outline-secondary btn-sm">Trim</button>
             </div>
          </div>
       </div>

       <div className='border_grey'>
          <SignaturePad ref={sigPad} />
       </div>
   </FormGroup>
   {trimmedDataUrl ? <img src={trimmedDataUrl}/> : null}
}

你能帮我一下吗?提前致谢

PS:我有第二个小问题,当我尝试使用 sigPad.isEmpty() 时,编译器说“此方法不存在”。但它存在于signature-pad-canvas ( https://www.npmjs.com/package/react-signature-canvas ) 的文档中。

最佳答案

按钮元素的默认类型是提交。尝试像

这样的按钮标签
<button type="button" ....

在表单中阻止他们提交。文本输入元素可能还需要注意停止按 enter 提交表单。

关于javascript - 为什么 Canvas 更新会重新加载页面? react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58634615/

相关文章:

javascript - 范围 slider 不适用于增加 Canvas 的亮度?

html - 使用@font-face 将文本绘制到 <canvas> 第一次不起作用

javascript - 在 highcharts 中突出显示一系列中的一个栏?

javascript - jQuery 悬停在 child 身上时的怪异

javascript慢慢降低音频元素的音量

reactjs - 未捕获( promise )ReferenceError : <function> is not defined

javascript - 在 React 中从数据库加载的动态接口(interface)的最佳方式

javascript - 将 SVG 路径转换为多边形以便在 Javascript Clipper 中使用

javascript - 如何检查有多少 React child 拥有某个 Prop ?

javascript - 有没有办法让 HTML Canvas 的大小不受限制