【发布时间】:2021-04-05 17:17:39
【问题描述】:
我有一个 Material-ui 自动完成元素(标签模式),其中包含一个选项列表和一个默认值列表,它们也包含在选项中。有没有办法排除第二次添加的默认值?
我尝试过使用
for (var i = options.length - 1; i >= 0; i--) {
for (var j = 0; j < defualtOptions.length; j++) {
if (options[i] && options[i].name === defualtOptions[j].name) {
options.splice(i, 1);
}
}
}
但这意味着如果删除任何默认选项,它们将不会显示为重新选择。
这是我的组件代码:
export default function PersonPicker(params) {
let { people, defualtPeople, label, variant, onChange } = params;
for (var i = people.length - 1; i >= 0; i--) {
for (var j = 0; j < defualtPeople.length; j++) {
if (people[i] && people[i].name === defualtPeople[j].name) {
people.splice(i, 1);
}
}
}
return (
<div>
<Autocomplete
onChange={(event, value) => onChange(event, value)}
multiple={true}
options={people}
getOptionLabel={(option) => option.name}
defaultValue={defualtPeople}
filterSelectedOptions={true}
selectOnFocus={true}
renderInput={(paramaters) => (
<TextField
variant={variant}
label={label}
placeholder={label}
{...paramaters}
{...params}
/>
)}
renderTags={(tagValue, getTagProps) => {
return tagValue.map((option, index) => (
<Chip
{...getTagProps({ index })}
label={option.name}
avatar={
<Avatar
alt={option.name}
src={option.imageSrc}
/>
}
/>
));
}}
/>
</div>
);
}
【问题讨论】:
-
我建议添加该组件的一段代码:
-
当然,忘记那是我的愚蠢!
标签: reactjs autocomplete material-ui