如何将 React 类组件转换为函数组件

阿努吉

我想在画布内显示图像。我这样做是作为一个类组件,但我的要求是使用函数组件:

class Canvas extends React.Component {
  componentDidMount() {
    const canvas = this.refs.canvas;
    const ctx = canvas.getContext("2d");
    const img = this.refs.image;    

    img.onload = () => {
      ctx.drawImage(img, 0, 0, this.props.data.w, this.props.data.h);
    }
  }  

  render() {
    const prop = this.props.data;
    return (
      <div data-id={prop.ukey} key={prop.ukey}>
        <canvas data-id={prop.ukey} key={prop.ukey} ref="canvas" width={prop.w} height={prop.h} />
        <img alt="doc-img" ref="image" src={prop.image} className="hidden" />
      </div>
    );
  }
}
舒巴姆·哈特里

由于您只需要在 componentDidMount 中执行代码,useEffect空依赖数组就相当于。同样对于参考,你会使用useRef钩子

const Canvas = ({data: prop}) => {
    const img = useRef(null);
    const cnv = useRef(null);
    useEffect(() => {
      const canvas = cnv.current;
      const image = img.current;
      const ctx = canvas.getContext("2d");  

      image.onload = () => {
        ctx.drawImage(image, 0, 0, prop.w, prop.h);
      }
    }, [])
    return (
      <div data-id={prop.ukey} key={prop.ukey}>
        <canvas data-id={prop.ukey} key={prop.ukey} ref={cnv} width={prop.w} height={prop.h} />
        <img alt="doc-img" ref={img} src={prop.image} className="hidden" />
      </div>
    );
}

PS,我强烈建议您在提出此类问题之前先阅读hooks文档,并在将来尝试编写代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将 React 类组件转换为函数组件

将 React 类组件转换为函数组件

本项目如何将 React 类组件转换为函数组件

React 将类转换为函数组件问题

React Native:将类组件转换为函数式组件

如何将 React 类组件字段转换为钩子

将类组件函数转换为函数组件函数

如何将React类组件转换为功能组件,反之亦然-IntelliJ

如何将基于React类的组件转换为功能组件?

将类组件转换为函数组件

将类组件转换为函数组件

React Native-如何将此函数转换为类组件,但仍然使用道具?

React - 将类组件转换为会话的功能组件

将React类组件转换为功能组件的快速方法?

将功能组件转换为 React js 中的类组件

如何在 React 中将“功能组件”转换为“类组件”?

如何在 React 中将类组件转换为功能组件

将 React 库添加到网站时,如何将类组件转换为功能组件?

React.js:如何将基于类的组件转换为功能?

React - 将 Formik 函数组件迁移到类组件

如何将 React 组件转换为 Next.JS?

如何使用 React Hooks 将带有构造函数的类转换为函数式组件?

如何将属性传递给 React 函数组件?

如何将类组件转换为函数?(反应)

无法将类转换为函数组件,“卸载错误”

如何在 React 中将 JSX 元素转换为函数组件?

使用ref将react类转换为功能组件

将纯JavaScript脚本转换为React中的类组件

将无状态转换为类组件 react js