Javascript 反应-菜单下拉菜单动态绝对位置

Javascript 反应-菜单下拉菜单动态绝对位置,javascript,css,reactjs,next.js,Javascript,Css,Reactjs,Next.js,我是React的新手,我正在尝试将我以前的网站vanillaJS翻译成React 我有一个按钮,应该触发下拉打开 <button type="button" onClick={() => setMenuOpen(!isMenuOpen)} ref={menuBtn}>menu</button> 在我的功能开始时组件 但它不起作用 我得到: TypeError: Cannot read property 'offset'

我是React的新手,我正在尝试将我以前的网站vanillaJS翻译成React

我有一个按钮,应该触发下拉打开

<button 
   type="button" 
   onClick={() => setMenuOpen(!isMenuOpen)} 
   ref={menuBtn}>menu</button>
在我的
功能开始时
组件

但它不起作用

我得到:

TypeError: Cannot read property 'offset' of null
此外,我认为即使这是有效的,它也不会作出反应。如果用户单击按钮,然后调整窗口大小,它将不会跟随按钮所在的位置


谢谢大家!

答案是使用
.current.getBoundingClientRect()
而不是
.current.offset()

似乎ref menuBtn.current是空的。您是否在函数组件中使用此代码?您是否尝试过将React.createRef()更改为React.useRef()?@JWGeertsma我在类中尝试过createRef,在函数中尝试过useRef,但都不起作用
const [isMenuOpen, setMenuOpen] = useState(false)
let menuBtn = React.createRef()
TypeError: Cannot read property 'offset' of null