使用Child child = new Child("I am child");
Generic<Child> generic = new Generic<>(child);
Master master = new Master(2, generic);
Gson gson = new Gson();
String valMaster = gson.toJson(master);
System.out.println(valMaster);
// {"id":2,"generic":{"t":{"name":"I am child"}}}
Master master2 = gson.fromJson(valMaster, Master.class);
String valMaster2 = gson.toJson(master2);
System.out.println(valMaster2);
// {"id":2,"generic":{"t":{"name":"I am child"}}}
,我可以禁用在InputField中呈现选定的选项。这不适用于renderTags={() => null}
。没有人有解决方案,并且知道为什么会这样吗?
答案 0 :(得分:0)
我认为该道具专门用于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可以为您做到这一点。