如何在 material UI 中删除自动完成之外的选定纸条
How to remove a selected Chip outside of Autocomplete in material UI
所以我想在 <Autocomplete />
中的 <TextField />
之外将所选值显示为 <Chip />
。我能够将值显示为 state
。但是,我仍然无法删除这些芯片,即不仅是显示,而且还更改了 <Autocomplete />
中的 selected
属性。有人有想法吗?
const [val, setVal] = useState([]);
const valHtml = val.map((option, index) => (
<Chip
label={option.title}
deleteIcon={<RemoveIcon />}
onDelete={() => {}}
/>
));
return (
<div>
<Autocomplete
multiple
filterSelectedOptions
options={top100Films}
onChange={(e, newValue) => setVal(newValue)}
getOptionLabel={option => option.title}
renderTags={() => {}}
renderInput={params => (
<TextField
{...params}
variant="standard"
placeholder="Favorites"
margin="normal"
fullWidth
/>
)}
/>
<div className="selectedTags">{valHtml}</div>
</div>
);
}
完整代码here
你需要两件事:
onDelete
中的适当逻辑Chip
如:
onDelete={() => {
setVal(val.filter(entry => entry !== option));
}}
- 在
Autocomplete
上指定值(您已经在状态中管理):
<Autocomplete
value={val}
// ... other properties
/>
这是您的沙盒的工作版本:https://codesandbox.io/s/autocomplete-with-chips-85rqq
所以我想在 <Autocomplete />
中的 <TextField />
之外将所选值显示为 <Chip />
。我能够将值显示为 state
。但是,我仍然无法删除这些芯片,即不仅是显示,而且还更改了 <Autocomplete />
中的 selected
属性。有人有想法吗?
const [val, setVal] = useState([]);
const valHtml = val.map((option, index) => (
<Chip
label={option.title}
deleteIcon={<RemoveIcon />}
onDelete={() => {}}
/>
));
return (
<div>
<Autocomplete
multiple
filterSelectedOptions
options={top100Films}
onChange={(e, newValue) => setVal(newValue)}
getOptionLabel={option => option.title}
renderTags={() => {}}
renderInput={params => (
<TextField
{...params}
variant="standard"
placeholder="Favorites"
margin="normal"
fullWidth
/>
)}
/>
<div className="selectedTags">{valHtml}</div>
</div>
);
}
完整代码here
你需要两件事:
onDelete
中的适当逻辑Chip
如:
onDelete={() => {
setVal(val.filter(entry => entry !== option));
}}
- 在
Autocomplete
上指定值(您已经在状态中管理):
<Autocomplete
value={val}
// ... other properties
/>
这是您的沙盒的工作版本:https://codesandbox.io/s/autocomplete-with-chips-85rqq