[英]React Material-UI Popper - popper ref doesn't work
我正在嘗試實現當彈出器打開並且底部超過 window 底部時,它的位置將發生變化(從“右端”到“右端”)的行為。
我想從 ref 得到底部 position,看看它是否通過了底部。 問題是,我嘗試過的 ref.current 是 null。
這些是我到目前為止嘗試過的:
Popper 組件 - 將回調傳遞給 ref 到包裝的 div 的示例
const customPopper = ({
popperRef = (popperElement) => {}
}) => {
const useStyles = makeStyles({
Popper: { ...popperStyle, ['z-index']: '9999' }
})
const styles = useStyles();
return (
<Popper
className={styles.Popper}
placement={placement}
open={open}
anchorEl={anchorEl}
>
<ClickAwayListener onClickAway={handleClickAway}>
<div ref={popperRef}>
<CalendarPopover
className={st(classes[calendarPopoverClass], { isMobile })}
isShown
withArrow={false}
title={title}
onClose={handleCloseClick}
>
{children}
</CalendarPopover>
</div>
</ClickAwayListener>
</Popper >
)
父組件引用處理程序
const popperRefHandler = (popperRef: React.MutableRefObject<HTMLDivElement>) => {
const popperBottom = popperRef.current.getBoundingClientRect().bottom;
console.log('hello from popper mount in agenda cell, popper-bottom: ', popperBottom);
}
編輯 1 - 沙箱示例
https://codesandbox.io/s/material-ui-issue-forked-zy11e?file=/src/index.js
它在傳遞回調時起作用。 它傳遞的參數是 DOM 元素並且沒有 RefObject 中的當前屬性:
非常感謝 Material UI 團隊的幫助: https://github.com/mui-org/material-ui/issues/23484
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.