无法修复自动完成中的弹出器位置
Unable to fix popper placement in autocomplete
我正在使用 Material-UI 的 <Autocomplete />
组件,并且我希望下拉列表始终出现在底部。因此我这样做了:
PopperComponent={(props) => <Popper {...props} placement='bottom-start' />}
我的下拉列表有时仍然出现在顶部。
此外,当我执行上述操作时,我的 popper 的宽度不再是我的自动完成的宽度。
然后我决定要更改 popper 的 zIndex,以便在 popper 的位置切换到顶部时应用栏不会覆盖它。
我该如何解决?
是的,placement
在自动完成的 Popper 中使用时似乎已损坏(material-ui v. 4.11.4)。
对我有用的 hack 如下:
<Autocomplete
// Force menu to open below, with the correct width
PopperComponent={({ style, ...props }) => (
<Popper
{...props}
style={{ ...style, height: 0 }} // width is passed in 'style' prop
/>
)}
// Set menu max height (optional)
ListboxProps={{ style: { maxHeight: '30vh' } }}
/>
如果有人还在寻找答案。您可以使用 flip 修饰符
来实现此目的
const CustomerPopper = (props: any) => <Popper
{...props}
modifiers={{
flip: {
enabled: false,
}
}}
popperOptions={{
placement:'bottom',
}}
/>;
我正在使用 Material-UI 的 <Autocomplete />
组件,并且我希望下拉列表始终出现在底部。因此我这样做了:
PopperComponent={(props) => <Popper {...props} placement='bottom-start' />}
我的下拉列表有时仍然出现在顶部。
此外,当我执行上述操作时,我的 popper 的宽度不再是我的自动完成的宽度。
然后我决定要更改 popper 的 zIndex,以便在 popper 的位置切换到顶部时应用栏不会覆盖它。
我该如何解决?
是的,placement
在自动完成的 Popper 中使用时似乎已损坏(material-ui v. 4.11.4)。
对我有用的 hack 如下:
<Autocomplete
// Force menu to open below, with the correct width
PopperComponent={({ style, ...props }) => (
<Popper
{...props}
style={{ ...style, height: 0 }} // width is passed in 'style' prop
/>
)}
// Set menu max height (optional)
ListboxProps={{ style: { maxHeight: '30vh' } }}
/>
如果有人还在寻找答案。您可以使用 flip 修饰符
来实现此目的const CustomerPopper = (props: any) => <Popper
{...props}
modifiers={{
flip: {
enabled: false,
}
}}
popperOptions={{
placement:'bottom',
}}
/>;