【发布时间】:2020-03-20 12:43:36
【问题描述】:
我正在关注这个CodeSandBox 示例,说明如何进行多种材料选择。
这是我的array,拥有所有可能的选项:
const permissionsGroupList = [
{ name: 'Sellers' },
{ name: 'Admins' }
];
这是我选择的状态:
const [groupPermissions, setGroupPermissions] = useState([]);
我添加所选选项的函数:
const handleChangeGroupPermissions = event => {
setGroupPermissions(event.target.value);
};
我的模板组件:
<InputLabel id="mult-check-permissions">Grupo de permissões</InputLabel>
<Select
labelId="mult-check-permissions"
id="demo-mutiple-checkbox"
multiple
label="Grupo de permissões"
onChange={handleChangeGroupPermissions}
value={groupPermissions}
input={<Input disableUnderline={true} />}
renderValue={selected =>
selected.map(value => <Chip key={value.id} label={value.name} />)
}
>
{permissionsGroupList.map(permissionGroup => (
<MenuItem
key={permissionGroup.name}
value={{ name: permissionGroup.name }}
>
<Checkbox
checked={groupPermissions.some(
group => group.name === permissionGroup.name
)}
/>
<ListItemText primary={permissionGroup.name} />
</MenuItem>
))}
</Select>
在示例中,当我选择一个已选择的选项时,该元素将从数组groupPermissions 中删除。就我而言,当我单击已选择的选项时,此元素会再次放入数组中。
要获得与沙盒示例类似的结果,我还需要做些什么?
【问题讨论】:
标签: javascript reactjs material-ui