猿问

React:在函数组件中使用 refs

我是 React 的新手,我正在尝试弄清楚如何在我的函数组件中使用 Refs 来获取 div 的宽度。一些显示我的困惑的代码如下:


import React, { useRef } from "react";

import "./styles.css";


export default function App() {

  const eyes = useRef();


  function onMouseMoveFn(e) {

    const x = eyes.current.offsetX();

    const y = eyes.current.offsetY();

    console.log(x, y, eyes);

  }


  return (

    <div onMouseMove={onMouseMoveFn}>

      <div class="eyes" ref={eyes}>

        <div class="eye" />

        <div class="eye" />

      </div>

    </div>

  );

}


(当您将鼠标悬停在沙盒浏览器中的眼睛上时,理想情况下应该会导致控制台显示一组眼睛的 x 和 y 坐标,但它会给出错误)


在 React 的文档中,它说“但是,只要您引用 DOM 元素或类组件,您就可以在函数组件中使用 ref 属性”所以我不明白为什么上面的代码不起作用。


弑天下
浏览 82回答 1
1回答

慕桂英4014372

您可以使用当前元素的函数访问偏移量getBoundingClientRect,请参见以下代码:eyes.current.getBoundingClientRect().x
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答