繁体   English   中英

React - 菜单下拉动态绝对 position

[英]React - Menu dropdown dynamic absolute position

我是 React 新手,我正在尝试将我的旧网站 vanillaJS 翻译成 ReactJS。

我有一个按钮应该触发下拉菜单打开。

<button 
   type="button" 
   onClick={() => setMenuOpen(!isMenuOpen)} 
   ref={menuBtn}>menu</button>

在 DOM 树的下方,我有:

{
isMenuOpen ?
  <nav style={{
     top: menuBtn.current.offset().top + menuBtn.current.outerHeight(),
     left: menuBtn.current.offset().left + (menuBtn.current.outerWidth() / 2)
  }}>
    ...
  </nav>
: null
            }

const [isMenuOpen, setMenuOpen] = useState(false)
let menuBtn = React.createRef()

在我的function Component的开头。

但它不起作用。

我得到:

TypeError: Cannot read property 'offset' of null

另外,我认为即使这有效,它也不会响应。 如果用户单击按钮,然后调整 window 的大小,它将不会跟随按钮所在的位置。

谢谢 !

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM