Javascript 反应-菜单下拉菜单动态绝对位置
我是React的新手,我正在尝试将我以前的网站vanillaJS翻译成React 我有一个按钮,应该触发下拉打开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'
<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