微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在React.js中使用自定义Web组件的最佳方法

如何解决在React.js中使用自定义Web组件的最佳方法

我正在使用reactjs制作一个Web应用程序,该应用程序的仪表可以显示压力传感器的读数。对于仪表板Web组件,我正在使用canvas-gauges

canvas-gauges一个reactjs wrapper,但它仍在使用 $div = $( 'div.drop-down-list' ); // Get all of the drop-down-lists cosnt $filtered = $div.filter((ix,el)=> el !== clickedDropDownList ) $filtered.hide(); // assumed that clickedDropDownList is a native element not a jQuery object. // later on if you want to do something with all the items use the `$div` // if you want the prevIoUsly filtered items use `$filtered` componentwillReceiveProps,并且我想使用钩子,所以我尝试编写自己的自定义组件。

我正在将useRef与canvas组件一起使用以渲染我的gauge组件。为了更新量规值,我只是在该组件上传递了一个道具。

componentDidMount

代码在使用google chrome或safari的计算机上正常工作,但是当我在手机中使用google chrome时,在对仪表值进行几次更新后,它崩溃了,并出现以下错误

import React,{ useRef,useEffect } from "react";
import { RadialGauge } from "canvas-gauges";

const PressureGauge = (props) => {
  const value = props.value;

  const canvasRef = useRef(null);

  const draw = (canvas,value) => {
    new RadialGauge({
      renderTo: canvas,value: value,width: 300,height: 300,title: "Pressure",units: "bar",minValue: 100,maxValue: 400,}).draw();
  };

  useEffect(() => {
    const canvas = canvasRef.current;

    const render = () => draw(canvas,value);

    render();

  },[value]);

  return <canvas ref={canvasRef}  />;
};

export default PressureGauge;

我对此还不是很了解,但是我认为该组件多次放弃,导致手机无法处理。

我的问题:

  1. 在reactjs中使用和更新自定义Web组件的更好方法是什么。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。