使用renderTags={() => null}
,我可以禁用以在InputField中呈现选定的选项。这不适用于multiple={false}
。有没有人有解决方案,知道为什么会这样?
发布于 2020-10-20 18:13:36
我认为prop是专门针对multiple
的,您可以在这里查看Autocomplete
的源代码:https://github.com/mui-org/material-ui/blob/9691ba77f3e27193c9cbff77ff85caaca22706b5/packages/material-ui/src/Autocomplete/Autocomplete.js
注意下面的条件语句。它检查multiple
是否为true
,是否为value.length > 0
(另外检查value
数组是否至少包含1个元素)。
尽管它没有在文档中明确说明,但从属性名称本身"renderTags
“-这些是您在启用多项选择时看到的”标记“。
if (multiple && value.length > 0) {
const getCustomizedTagProps = (params) => ({
className: clsx(classes.tag, {
[classes.tagSizeSmall]: size === 'small',
}),
disabled,
...getTagProps(params),
});
if (renderTags) {
startAdornment = renderTags(value, getCustomizedTagProps);
} else {
startAdornment = value.map((option, index) => (
<Chip
label={getOptionLabel(option)}
size={size}
{...getCustomizedTagProps({ index })}
{...ChipProps}
/>
));
}
}
我不完全确定为什么要隐藏Autocomplete
上的选定值,但是使用CSS可以做到这一点。
https://stackoverflow.com/questions/64441779
复制相似问题