【发布时间】:2020-08-07 07:53:08
【问题描述】:
所以我用 Material UI 的 Menu 组件制作了一个下拉组件,但默认情况下,菜单组件在右侧打开。我需要它真正向左打开。
我已经尝试过设计它,我最终可以让它随边距移动,但我正在寻找更可靠的东西。老实说,我很惊讶没有任何支持。
currently, my dropdown menu opens like this - not good
我希望它从那里开始,只是打开另一个方向。任何帮助表示赞赏!
我的代码如下: 组件
function DropDown({
dropDownMeta,
style = { container: {}, icon: {} },
icon = <MenuIcon style={{ ...style.icon }} />
}: DropDownProps): ReactElement {
const [menuAnchor, setMenuAnchor] = useState<null | HTMLElement>(null)
const handleMenuClick = (event: React.MouseEvent<HTMLButtonElement>) => {
setMenuAnchor(event.currentTarget)
}
const handleMenuClose = () => {
setMenuAnchor(null)
}
const classes = useStyles()
return (
<Box style={{ ...style.container }}>
<StyledIconButton
style={{ ...style.buttonContainer }}
onClick={handleMenuClick}
>
{icon}
</StyledIconButton>
<Menu
anchorEl={menuAnchor}
keepMounted
open={Boolean(menuAnchor)}
onClose={handleMenuClose}
className={classes.root}
style={menuStyles as CSSProperties}
// getContentAnchorEl={null}
anchorOrigin={{
vertical: "top",
horizontal: "left",
}}
>
{dropDownMeta.map((item, i) => {
const { label, callback, bottomDivider } = item
return (
<Box key={`Item${i}`} onClick={handleMenuClose}>
<StyledMenuItem onClick={callback}>{label}</StyledMenuItem>
{bottomDivider && <Divider />}
</Box>
)
})}
</Menu>
</Box>
)
}
export default DropDown
样式
dropDown: {
menu: {
position: "absolute",
top: 35
},
menuItem: {
fontSize: 12,
padding: 5,
minWidth: 250
},
menuIconBtn: {
fontSize: 31,
position: "relative",
top: 1,
padding: 0
}
},
【问题讨论】:
标签: javascript reactjs material-ui