如何通过Material UI Select实现下拉菜单向上展开
解决Material UI Select下拉菜单向上展开的问题
要让Material UI的Select组件下拉菜单向上展开,只需通过MenuProps配置菜单的锚点与变换原点即可,具体实现如下:
- 在
Select组件中添加MenuProps属性,配置anchorOrigin和transformOrigin两个参数:anchorOrigin:设置菜单相对于Select组件的锚定位置,将vertical设为top,表示菜单锚定在Select的顶部transformOrigin:设置菜单自身的变换原点,将vertical设为bottom,表示菜单从自身底部开始向上展开
修改后的完整代码:
import * as React from "react"; import Box from "@mui/material/Box"; import InputLabel from "@mui/material/InputLabel"; import MenuItem from "@mui/material/MenuItem"; import FormControl from "@mui/material/FormControl"; import Select, { SelectChangeEvent } from "@mui/material/Select"; export default function BasicSelect() { const [age, setAge] = React.useState(""); const handleChange = (event: SelectChangeEvent) => { setAge(event.target.value as string); }; return ( <Box sx={{ position: "relative", top: "200px", minWidth: 10 }} > <FormControl fullWidth> <InputLabel id="demo-simple-select-label">Age</InputLabel> <Select labelId="demo-simple-select-label" id="demo-simple-select" value={age} label="Age" onChange={handleChange} // 添加MenuProps配置向上展开 MenuProps={{ anchorOrigin: { vertical: 'top', horizontal: 'left', }, transformOrigin: { vertical: 'bottom', horizontal: 'left', }, }} > <MenuItem value={10}>Ten</MenuItem> <MenuItem value={20}>Twenty</MenuItem> <MenuItem value={30}>Thirty</MenuItem> </Select> </FormControl> </Box> ); }
这个配置会强制下拉菜单从Select组件的顶部向上展开,替代默认的向下展开行为。
内容的提问来源于stack exchange,提问作者Виктория
相关产品推荐
相关产品推荐

