reactjs - 将类重构为 Hook 元素

标签 reactjs react-hooks

我正在尝试将 Class 组件转换为 Hook 组件,但很难转换一些内容:

  sceneSetup = () => {
    const width = this.el.clientWidth;
    const height = this.el.clientHeight;
    this.el.appendChild(this.renderer.domElement);
  };

1) this.el? 如何将其转换为钩子(Hook)组件?


另外在我的渲染方法中我返回这个:

  render() {
    return(
        <div ref={ref => (this.el = ref)} />
    ) 
  }

2)div如何转化为hook?

最佳答案

How would this.el? this be translated into a hook component?

使用useRef钩子(Hook)。

2) How does the div translate into a hook?

只需使用 el 引用返回 div 即可。

function Scene() {
  const el = useRef(null);

  return <div ref={el} /> // init el ref
}

或者,您也可以使用 callback ref用于测量节点尺寸

function Scene() {
  const [rect, setRect] = useState(null);

  const callbackRef = useCallback(node => {
    if (node !== null) {
      setRect(node.getBoundingClientRect());
    }
  }, []);

  return <div ref={callbackRef} /> // use callback ref
}

关于reactjs - 将类重构为 Hook 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58163867/

相关文章:

javascript - 获取与 PayPal 关联的帐单地址

javascript - 如何正确更改对象数组的属性? JavaScript ReactJS

javascript - React useContext 返回未定义

reactjs - 输入 NextJs 链接/路由

reactjs - 有没有人能够使用语义 UI 设置创建 React 应用程序?

javascript - 滚动到某个位置时如何更改导航栏颜色?

reactjs - 自定义 Hook - 返回状态和设置状态

reactjs - 如何将日期从 React-DatePicker 转换为字符串

reactjs - 错误: Not implemented: HTMLFormElement. prototype.submit

reactjs - React+Redux 自定义 Hook(仅在特定条件下更新)